我有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;
没有给出理想的结果。
答案 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
只要列之间存在匹配项,INNER JOIN关键字就会选择两个表中的所有行。如果“A”表中的行中没有“B”中的匹配项,则不会列出这些行。
LEFT JOIN关键字返回左表(A)中的所有行,即使右表(B)中没有匹配项也是如此。