如何在oracle sql中合并(列)两个SELECT语句的输出?

时间:2014-02-25 09:59:10

标签: mysql sql sql-server oracle

我有两个Select查询。

第一个Select查询给出的输出有两列,即

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

给出输出的第二个Select查询,它作为两列,即B列和C列。此select语句的B列中的所有值都与第一个Select语句的B列值相匹配.i.e

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

我无法使用视图来存储两个选择查询的输出。我需要在两个选择查询中使用B列进行合并。但是,我无法弄清楚如何去做。

5 个答案:

答案 0 :(得分: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 

如果您的案例不是那么复杂,例如Query1和Query2实际上都是,比如Table1Table2你可以用更简单的解决方案做好:

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

答案 1 :(得分:0)

请考虑使用类似

等字段的表格
TableA(A ,B) , TableB(B,C)

尝试使用JOIN之类的

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

答案 2 :(得分:0)

这可以通过使用INNER JOIN列上的B将您的第一个表格加入第二个表格来实现:

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

请注意,我调用了您的第一个表Table1(别名T1)和您的第二个表Table2(别名T2),因为我不确定他们的名字。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您可以使用加入

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