首页 > 解决方案 > 使用 MySQL 在同一个表上多次左加入 2 个 id

问题描述

我有这个 SQL 请求:

SELECT mailbox.*,
       user.picture, user.firstname, user.lastname
FROM mailbox 
LEFT JOIN user ON user.id = mailbox.sender_id
WHERE mailbox.sender_id = 54 OR mailbox.receiver_id = 54

我需要另一个LEFT JOIN像这样的receiver_id:

LEFT JOIN user ON user.id = mailbox.receiver_id

从用户那里获取信息,但我已经从第一个用户那里获取了信息LEFT JOIN

那么下次如何从用户表中获取信息呢?

标签: mysqlsqljoinleft-join

解决方案


我想你想要:

SELECT m.*,
       us.picture, us.firstname, us.lastname,
       ur.picture, ur.firstname, ur.lastname
FROM mailbox m LEFT JOIN
     user us
     ON us.id = m.sender_id LEFT JOIN
     user ur
     ON ur.id = m.receiver_id 
WHERE 54 IN (m.sender_id, m.receiver_id);

注意:这里可能不需要LEFT JOIN。接收者和发送者 id 列可能包含有效的用户值。


推荐阅读