加入3个表的记录

时间:2013-05-20 15:46:22

标签: php mysql select join

我尝试从两个具有以下架构的表中加入记录

users
----
name
phone
email

sales
----
seller_id
buyer_id
amt
date

这是我的sql

Select
  sales.amt,
  sales.date,
  buyer.phone as buyer_phone,
  buyer.name as buyer_name,
  buyer.email as buyer_email,
  seller.phone As seller_phone,
  seller.name As seller_name,
  seller.email As seller_email
From
  users borrower Inner Join
  sales On borrower.id = sales.buyer_id Inner Join
  users seller On seller.id = sales.seller_id

但我得到一个空记录

预期输出为

amt,
date,
buyer_phone,
buyer_name,
buyer_email,
seller_phone,
seller_name,
seller_email

任何帮助或建议

1 个答案:

答案 0 :(得分:3)

如果将用于连接表sales的表user的两列不可为空,则当前查询是正确的。但是,如果它们可以为空,请使用LEFT JOIN代替INNER JOIN

SELECT sales.amt,
       sales.date,
       buyer.phone as buyer_phone,
       buyer.name as buyer_name,
       buyer.email as buyer_email,
       seller.phone As seller_phone,
       seller.name As seller_name,
       seller.email As seller_email
FROM   sales
       LEFT JOIN users borrower 
          ON borrower.id = sales.buyer_id 
       LEFT JOIN users seller 
          ON seller.id = sales.seller_id

要进一步了解联接,请访问以下链接: