我在Oracle中有一些表。
表1包含:
id|name
1|boy
2|roy
表2包含:
id|value
1|90
2|100
表_3包含:
id|class
1|A
2|B
我想加入所有三张桌子。
Query_1:
SELECT A.ID,A.NAME,B.VALUE,C.CLASS
FROM
TABLE_1 A, TABLE_2 B, TABLE_3 C
WHERE
A.ID=B.ID(+) AND
B.ID=C.ID(+)
OR
Query_2:
SELECT A.ID,A.NAME,B.VALUE,C.CLASS
FROM
TABLE_1 A, TABLE_2 B, TABLE_3 C
WHERE
A.ID=B.ID(+) AND
A.ID=C.ID(+)
哪一个是真的?
答案 0 :(得分:0)
当您需要外部加入时: 您的查询将包含两个或多个表,其中可能不存在每个记录的匹配项。例子最好解释。如果您有两个表:“父”和“工作”。如果你想问一个问题:我们在当地雇主的父母名单中有什么联系人,内部联接可以正常工作:
select w.employer, w.phone, w.address,p.name, p.phone
from work w, parent p
where w.person_id = p.person_id
如果问题是我们的父母在哪里工作 - 有些人可能失业并且在“工作”表中没有匹配 - 现在你需要一个外部联接。在Oracle SQL中:
select p.name, p.phone, w.employer, w.phone, w.address,
from work w, parent p
where p.person_id = w.person_id(+)
(+)总是在我们需要“综合”添加缺失id的一侧。