2014-02-25 110 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