2012-02-06 161 views
1

我想在兩個column_Acolumn_B以下兩個選擇查詢結果A和B.我試圖遵循邏輯,但它不能在SQL Server 2008 R2中工作SQL Server SELECT嵌套

select Column_A, Column_B 

From (

SQL query for A 

, 

SQL query for B 

) 

有人可以請驗證我的邏輯是錯誤的還是正確的?

+2

歡迎使用StackOverflow:如果您發佈代碼,XML或數據樣本,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼示例」按鈕(「{}」)格式和語法突出顯示它! – 2012-02-06 17:23:54

+3

查詢A和查詢B返回單個值還是一組值? – Akhil 2012-02-06 17:24:15

+0

有不同的方法來組合查詢。請說明你想要達到的目標。你可以給出這些表包含的例子以及你期望的結果。 – 2012-02-06 17:35:25

回答

2

可以通過嵌套選擇這樣

SELECT A.Column, B.Column 
FROM 
    (SELECT Column FROM table1 ...) A 
    INNER JOIN 
    (SELECT Column FROM table2 ...) B 
    ON A.id = B.id 

此查詢結合了另一個的行一個數據源(表或查詢子)的行。如果您從多個數據源進行查詢,您通常必須以某種方式加入它們。如果你不這樣做,你會得到一個笛卡爾產品,它將每一行的每一行與另一行的每行相結合。

3

如果你只是想要一個標量結果做到這一點:

SELECT 
    (<sub-query for value A>) Column_A, 
    (<sub-query for value B>) Column_B 
; 

對於標量結果集,你需要確保,他們總是隻返回一個值,否則查詢將在運行時失敗。

如果你真的想使用子查詢你需要他們的名字:

SELECT Column_A, Column_B 
FROM (<sub-query A>) AS A, 
    (<sub-query B>) AS B 

...你會想無論是JOIN條件或WHERE條款正確連接表在一起。

+0

史詩般的勝利....你讓我的一天!十分感謝。你第一次邏輯工作! – Satish 2012-02-06 18:14:21