我正在一个项目中,一个用户存在多个表数据,但是如果其中一个表中有一个为空,则SQL会返回空数据,即使其他表数据也存在,如SQL
$id = 40;
SELECT *
FROM players a
JOIN pitcher b
ON a.id = b.user_id
JOIN outfield_position c
ON a.id = c.user_id
JOIN infield_position d
ON a.id = d.user_id
JOIN defensive_statistics e
ON a.id = e.user_id
JOIN career f
ON a.id = f.user_id
WHERE a.id = $id
就像$outfield_position
表为空一样,SQL返回一个空数组,但有时这里返回数据,如果每种方法都可用或不可用,该怎么办?
谢谢
答案 0 :(得分:0)
使用的默认联接为内部联接,如此处joins所述。 在这种情况下,输出将是与其连接的表的交集,因此,如果任何表没有任何值,则交集将给出空结果。
您可以使用LEFT OUTER JOIN或FULL OUTER JOIN进行尝试,如果在$players
中存在数据,则在Left Outer Join中显示该值。如果不确定数据,则Full Outer Join将给出所有结果桌子。