2014-02-25 136 views
1

我有兩個選擇查詢。如何在oracle sql中合併(列)兩個SELECT語句的輸出?

第一個Select查詢給出了具有兩列的輸出。

A B 
------ 
1 2  
3 4  
5 6  
7 8 

給出其作爲兩列即列B和C列在這個選擇語句的列B中的所有值的第一選擇statement.ie的列B的值相匹配的輸出的第二選擇查詢

B C 
------ 
2 25  
4 50  
6 30  
8 50 

現在,我需要合併上述兩個Select查詢的輸出。即

A B C 
---------- 
1 2 25  
3 4 50  
5 6 30  
7 8 50 

我不能使用視圖來存儲兩個select查詢的輸出。我需要在兩個select查詢中使用列B進行合併。但是,我無法弄清楚如何去做。

+0

顯示查詢.. – Mani

回答

4

如果您闡述查詢(不只是加入),您可以嘗試使用with建設

with 
    Query1 as (-- <- Put your 1st Query text here 
     select A, 
      B 
     ... 
    ), 
    Query2 as (-- <- Put your 2nd Query text here 
     select B, 
      C 
     ... 
    ) 

select Query1.A, 
     Query1.B, 
     Query2.C 
    from Query1, 
     Query2 
    where Query1.B = Query2.B 

如果你的情況是不是那麼複雜,例如這兩個查詢1和QUERY2實際上,說Table1Table2你可以用一個簡單的解決方案做的很好:

select Table1.A, 
     Table1.B, 
     Table2.C 
    from Table1, 
     Table2 
    where Table1.B = table2.B 
+0

謝謝!第一種方法工作.. –

0

考慮你的表像有領域,如

TableA(A ,B) , TableB(B,C) 

嘗試使用JOIN

SELECT TableA.A , TableA.B, TableB.C 
FROM TableA 
JOIN TableB ON TableA.B = TableB.B; 
0

這可以通過在B列使用INNER JOIN加入您的第一個表,你的第二個表來完成:

SELECT T1.A, 
     T1.B, 
     T2.C 
    FROM Table1 T1 
    INNER JOIN Table2 T2 ON T2.B = T1.B 

請注意,我打電話給您的第一個表Table1(別名T1)和您的第二個表Table2(別名T2),因爲我不確定他們的名字。

0
SELECT one.a, one.b, two.c 
FROM table1 one JOIN table2 two 
ON one.b = two.b 
0

您可以使用加入

SELECT A.A, 
    A.B, 
    B.C 
FROM Table1 A 
INNER JOIN Table2 B ON B.B = A.B