2013-09-25 3 views

ответ

2

Вы можете сделать:

select * from 
    (select AAA, BBB from Atable) a 
     inner join 
    (select QQQ, BBB from Btable)b 
     on 
     a.BBB = b.BBB 
where a.AAA = 'Y' 

Я не уверен, что дополнительные уровни вложенности и ступенчатости в вашем вопросе пытались достичь.

+0

@TejasVaishnav - если вы «Работа с механизмом базы данных с достойным оптимизатором (OP не указала, что они используют), тогда производительность должна быть одинаковой. Я бы, конечно, воздержался от утверждений, которые включают слово «всегда», если я не знаю, какая система баз данных использовалась. –

0

Почему вы собираетесь для вместо запроса для этого типа запросов

select * 
from 
    select a.*, b.* 
    from 
     ( 
      (select AAA, BBB from Atable) a) as AA, 
      select * 
      from (
        (select QQQ, BBB from Btable) b) as BB 
where 
    AA.AAA = 'Y' and AA.BBB = BB.BBB 

Вы можете использовать любой присоединиться как внутреннее соединение, левое внешнее соединение и т.д., как этот

select 
    AA.AAA, AA.BBB, BB.QQQ 
from 
    Atable as AA 
inner join 
    Btable as BB ON BB.BBB = AA.BBB 
where 
    AA.AAA = 'Y' 
+0

Позвольте мне попробовать оба эти варианта и при необходимости вернусь –

Смежные вопросы