仅当值不为null时,我才想在MySQL中执行JOIN。例如:
$db = "SELECT users.name, users.email, cars.name
FROM users
LEFT JOIN cars ON cars.id = users.car_id
WHERE users.id = :id"
但是该语句不起作用,因为如果users.car_id
为null,它将不会返回任何内容。
相反,我仍然希望结果出来,显然cars.name
将是null
。有什么办法做到这一点?
答案 0 :(得分:0)
尝试将原始查询变成子查询,然后再次与users表一起LEFT JOIN
。即使原始查询返回NULL
,这也应该显示users表中的每个名称:
SELECT u.name,v.* FROM users u
LEFT JOIN
( SELECT users.name AS UserName, users.email, cars.name
FROM users
LEFT JOIN cars ON cars.id = users.car_id
WHERE users.id = :id ) v
ON u.name=v.UserName;