Показать сообщение отдельно
Старый 29.01.2009, 22:34   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
в моём примере запрос имеет немного другой вид
Код:
SELECT GROUPID FROM TMPTABLE1
WHERE TMPTABLE1.GROUPID EXISTS IN (SELECT * FROM TMPTABLE2 WHERE TMPTABLE2.ID = TMPTABLE1.ID)
GROUP BY GROUPID
т.е. связь со второй таблицей по полю "Id". И главная проблема в том что если таблицы tmpTable1 и tmpTable2 являются временными, то результат отличен от предпологаемого. Он скорее становится похож на следующую структуру
Код:
SELECT T.GROUPID FROM (SELECT GROUPID, MIN(ID) FROM TMPTABLE1 GROUP BY GROUPID) AS T WHERE EXISTS(SELECT * FROM TMPTABLE2 WHERE TMPTABLE2.ID = T.ID)
Разница, согласитесь, существенная