我正在尝试执行以下操作
select
TA.C1 ,TB.C1 ,TC.C1
from TableA TA ,TableB TB , TableC TC
where TA.C1 = "ABC"
AND TA.C2 = TB.C1
and TA.C3 = TC.C1
结果是
我的目的是向此查询添加更多表
select
TA.C1,TB.C1,TC.C1,TD.C1,TE.C1
from TableA TA ,TableB TB , TableC TC , TableD TD, TableE TE
where TA.C1 = "ABC"
and TA.C2 = TB.C1
and TA.C3 = TC.C1
and TA.C4 = TD.C1
and TD.C2 = TE.C1
但是由于TD.C1列包含空值,而TA.C4始终包含一些值,所以得到以下结果。
预期的结果是
我曾尝试使用Joins联接4个表:
select
TA.C1,TB.C1,TC.C1,TD.C1
from TableA TA
JOIN TableB TB ON (TA.C2 = TB.C1)
JOIN TableC TC ON (TA.C3 = TC.C1)
LEFT JOIN TableD TD ON (TA.C4 = TD.C1)
AND TA.C1 = "ABC"
结果非常接近我的预期:
问题是我不确定如何加入第五张表(表E),因为这与表A没有任何关系。
您可以只在表E中添加另一个左连接到表D。基本上,表D和E之间存在关系,并且输入到表E中的数据必须与表E保持一致。如果没有数据,则该关系仍然存在,因此联接将根据需要返回空值。
select
TA.C1,TB.C1,TC.C1,TD.C1, TE.C1
from TableA TA
INNER JOIN TableB TB ON (TA.C2 = TB.C1)
INNER JOIN TableC TC ON (TA.C3 = TC.C1)
LEFT JOIN TableD TD ON (TA.C4 = TD.C1)
LEFT JOIN TableE TE ON (TD.C2 = TE.C1)
AND TA.C3 = "ABC"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句