【问题标题】:Select all rows with WHERE clause in MySQL在 MySQL 中选择所有带有 WHERE 子句的行
【发布时间】:2013-12-26 10:04:55
【问题描述】:

我有两张桌子: 第一个有这些列:

id 
sender 
recipient 
description
date

第二个有这些列:

id
name

senderrecipient 是引用第二个表的 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

但它只显示发件人 = 收件人的行。如何显示每行中具有唯一数据的所有行?

【问题讨论】:

    标签: mysql sql select join left-join


    【解决方案1】:

    使用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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 2011-07-05
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 2013-02-04
      相关资源
      最近更新 更多