2013-09-25 146 views
1

我想兩個嵌套的查詢。可以加入嵌套查詢嗎?

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 

是否可以這樣做?

回答

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沒有指出他們正在使用什麼),那麼性能應該是相同的。如果我不知道正在使用什麼數據庫系統,我肯定會避免使用包含「always」一詞的語句。 –

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

讓我試試這兩個選項,並會在需要時回來 –