如何加入两个表

时间:2014-01-15 13:49:43

标签: sql oracle join

我有2个SQL Oracle数据表。

A:  Col1 | Col2 | Key
     c1      c2    1
     c3      c4    2
     c5      c6    3


B:  Co1  | Co2 | Key
      a1     a2    2
      a3     a4    3

我需要选择给我下表:

C:  
    a1  a2  c3 c4
    a3  a4  c5 c6
    -   -   c1 c2

如何使用SQL执行此操作?正常加入:

select * from a, b where a.key = b.key;

没有给出理想的结果。

4 个答案:

答案 0 :(得分:4)

您需要左外连接:

select b.col1, b.col2, a.col1, a.col2
from a left outer join
     b 
     on a.key = b.key;

答案 1 :(得分:2)

在进行类似的连接时,它只会返回两个表中存在的条目。要获得您正在寻找的结果,请尝试这样的事情......

SELECT B.Co1, B.Co2, A.Col1, A.Col2 
FROM A
LEFT JOIN B ON A.Key = B.Key

答案 2 :(得分:2)

尝试此查询:

SELECT B.Co1, B.Co2, A.Col1, A.Col2 
FROM A,B
WHERE A.Key = B.Key(+);

答案 3 :(得分:0)

你好,你可以试试这个:

SELECT b.Col1, b.Col2, a.Co1, a.Co2 FROM s
LEFT JOIN a ON a.Key = b.Key

JOIN (INNER JOIN)

只要列之间存在匹配项,INNER JOIN关键字就会选择两个表中的所有行。如果“A”表中的行中没有“B”中的匹配项,则不会列出这些行。

LEFT JOIN

LEFT JOIN关键字返回左表(A)中的所有行,即使右表(B)中没有匹配项也是如此。