![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос [D7, IB6.x]
Lamer2 © (2004-04-12 16:11:00)Уважаемые Мастера!!!!!! Вопрос простой, есть 2 таблицы T1(id, name) и T2(id, id_T1, name), связь один ко многим, T1.id = T2.id_T1, мне надо найти все записи из таблицы T1, где встречаются записи из T2 с name равным например 'sql'?
serge35 (2004-04-12 17:34:00) [1]Эти запросы идентичные, только второй по идее должен выполняться быстрее.
Lamer2 (2004-04-12 17:22:00) [2]>serge35
я так же подумал, только
select * from t1
where t1.id in (select distinct t2.id where t2.name='sql')
а то записи повторятся будут наверное, дома проверю
serge35 (2004-04-12 17:15:00) [3]select * from t1
where t1.id in (select t2.id where t2.name='sql')
Это будет вложенный запрос, но результат будет такой же.
Lamer2 (2004-04-12 17:06:00) [4]ну типа этого
select * from T1 where exists (select * from T2 where name ='sql')
только этот запрос не работает, он либо все записи выдает, либо ни одной!
serge35 (2004-04-12 17:01:00) [5]А как тогда понимать это:
"мне надо найти все записи из таблицы T1, где встречаются записи из T2 с name равным например 'sql'?"
Lamer2 (2004-04-12 16:59:00) [6]интересно, а этот запрос с подзапросом можно сделать?
innok (2004-04-12 16:57:00) [7]используй в select'e distinct
sniknik (2004-04-12 16:56:00) [8]годится, distinct поставь только и все.
Lamer2 (2004-04-12 16:48:00) [9]>serge35
не годится, так как если в таблице T2 есть 2 записи с полем name='sql' и у них id_T1 равный, то он выдаст 2 одинаковые строки из T1
serge35 (2004-04-12 16:38:00) [10]select * from t1, t2
where t1.id=t2.id
and t2.name='sql'
Lamer2 (2004-04-12 16:26:00) [11]АУ