А чем первый запрос хуже
select * from doma
where kgrup in
(select D1.kgrup
from doma D1
group by D1.kgrup
having count(D1.kgrup)>1)
ведь сначало выполняется запрос
внутри where и потом всё отсальное по принципу декартового квадрата

кстати такой запрос тоже не срабатывает
select * from doma d2
where kgrup in
(select D1.kgrup
from doma D1
where D1.kgrup>20
group by D1.kgrup)

и такой тоже

select d2.* from doma d2
where d2.kgrup in
(select D1.kgrup
from doma D1
where D1.kgrup>d2.kgrup
group by D1.kgrup)
а по Груберу всё должно быть в порядке.


"Мадорский Г.В." <[EMAIL PROTECTED]> сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED]



вот тоже и самое вызывает

select * from doma
where kgrup in
(select D1.kgrup
from doma D1
group by D1.kgrup
having count(D1.kgrup)>1)

На FB 2 можно вот так написать:

select a.* from doma a
inner join
  (select kgrup
   from doma
   group by kgrup
   having count(kgrup)>1)  b on a.kgrup = a.kgrup

Ну а в более ранних версиях видимо проще всего второй селект заменить на view, с ней и join-ить.

With b/r. Gleb.




Reply via email to