[英]How do you JOIN with an if statement (conditional)
僅當值不為空時,我才想在 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
為空,則不會返回任何內容。
相反,我仍然希望結果出來,顯然cars.name
將為null
。 有什么方法可以實現這一目標嗎?
嘗試將原始查詢轉換為子查詢,然后將其與用戶表再次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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.