我有查询应该从3个表中获取所有匹配的记录。在三个表中不常见的其他记录,它应该结合第一个表中的记录。 EX:
select a.x,a.y,a.z
from table1 a,table2 b,table3 c
where a.x=b.x
and b.x=c.x;
上面的查询将获取所有3个表中的公共记录。 我需要将记录添加到我的结果集中,这些记录不存在于table2或table3中。</ p>
记录应如下所示:
1 abc acd
2 xyz xzy
3 pqr prq
4 null null -- incase 4 is not present in either table2 or table3
答案 0 :(得分:0)
您需要使用outer join
代替:
select a.x,a.y,a.z
from table1 a
left join table2 b on a.x=b.x
left join table3 c on b.x=c.x;
答案 1 :(得分:0)
你陈述
其他记录在三个表中不常见,它应该联合起来 来自第一张表的记录。
然后陈述
我需要将记录添加到我的结果集中,这些记录不存在 table2或table3。
对于第一种情况,使用完整的外连接,它将返回所有表中的所有行。对于第二种情况,使用左连接,这将省去与table1不匹配的行。