簡體   English   中英

你如何用 if 語句 JOIN(條件)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM