我有一个查询根据表名为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