mysql - 使用 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
那么下次如何从用户表中获取信息呢?
解决方案
我想你想要:
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 列可能包含有效的用户值。
推荐阅读
- intellij-idea - 我可以在 Intellij 结构搜索中使用过滤器来引用变量计数吗?
- r - 如何将单元格颜色添加到 R 中的非数字值?(可格式化或 DT)
- node.js - 使用 socket.io 连接 Node.js 和 Python
- elasticsearch - 为建议搜索标记化文本字段
- php - 由于使用 paramconverter 进行序列化而导致的内部错误
- c++ - 如何在黑色区域opencv(C++)中找到矩形
- html - 为多个有错误的输入字段添加红色边框
- java - 检索firebase java中子项下添加的新数据
- java - 将 Jsoup Elements.select() 与 Optional.ifPresent 一起使用
- office-js - 通过 Ooxml 插入图像在 Word Online 中不起作用