我有两个表: 第一个有这些列:
id
sender
recipient
description
date
第二个有这些列:
id
name
和sender 和recipient 是引用第二个表的id 的外键。
我尝试选择第一个表中的所有行。
SELECT a.id, a.description, b.name as sender, b.name as recipient, a.date FROM table_A a JOIN table_B b WHERE a.sender=b.id AND a.recipient=b.id ORDER BY date DESC
但它只显示发件人 = 收件人的行。如何显示每行中包含唯一数据的所有行?
最佳答案
使用 LEFT JOIN
而不是 INNER JOIN
试试这个:
SELECT a.id, a.description, b.name AS sender, c.name AS recipient, a.date
FROM table_A a
LEFT JOIN table_B b ON a.sender = b.id
LEFT JOIN table_B c ON a.recipient = c.id
ORDER BY a.date DESC;
关于mysql - 在 MySQL 中选择所有带有 WHERE 子句的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20782873/