2

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

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

任何帮助或建议

4

1 回答 1

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

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-05-20T15:49:22.500 回答