我有一個查詢根據表名爲users
的表中的記錄ID查找人員的全名。全名與他們在另一個表中的角色綁定(table1
)。這需要多加入到users
表:MySQL:在一個表上存在多個連接時計入NULL或0的值
SELECT table1.id, users.full_name AS "Requester",
users.full_name AS "Approver,"
users.full_name AS "Ordered By",
users.full_name AS "Received By"
FROM table1
JOIN users AS users
ON table1.requester_id = users.id
JOIN users AS users2
ON table1.approver_id = users2.id
JOIN users AS users3
ON table1.ordered_by = users3.id
JOIN users AS users4
ON table1.received_by = users4.id
WHERE table1.deleted_record !=1;
我遇到的問題是與ordered_by
和received_by
。通常,它們還不存在,因爲訂單既未被排序也未被接收,因此每個訂單的ID可以爲0,在users
表中沒有相應的值。當我運行這個查詢時,我應該找回所有存在的475條記錄,但由於這些0值,我只返回365。如何修改此查詢以確保返回所有行,即使ordered_by
和/或received_by
= 0?
感謝。當我沒有得到我想要的結果時,我開始使用INNER JOIN並支持這些。左加入固定它。 – Chris