我目前有以下查询
SELECT * FROM tbl_Cars c
INNER JOIN tbl_Car_Parts cp ON c.Id = cp.Id
INNER JOIN tbl_Car_Factory cf ON cp.Id = cf.Id
但是我现在已经意识到汽车表中有一些ID不在Car Parts表中,因此我希望它们包括在我的结果中。我尝试将我的INNER JOIN更改为LEFT OUTER JOIN但是我返回的结果集没有区别?
答案 0 :(得分:3)
在两个的联接中使用LEFT OUTER JOIN
。
SELECT * FROM tbl_Cars c
LEFT OUTER JOIN tbl_Car_Parts cp ON c.Id = cp.Id
LEFT OUTER JOIN tbl_Car_Factory cf ON cp.Id = cf.Id
否则,第二个INNER JOIN
将使LEFT OUTER JOIN
表中没有ID(未加入)的记录的第一个tbl_Car_Parts
无效。
在LEFT OUTER JOIN
之后,如果您要加入的表格与之前使用INNER JOIN
加入的表格无关,则您可能只会再次使用LEFT OUTER JOIN
。
答案 1 :(得分:0)
LEFT JOIN应该已经解决了你的问题,不知道它为什么不起作用。 为了安全起见,我在两张桌子上都使用了Left join ...
SELECT * FROM tbl_Cars c
LEFT JOIN tbl_Car_Parts cp ON c.Id = cp.Id
LEFT JOIN tbl_Car_Factory cf ON cp.Id = cf.Id