如何在一次连接三个表时对一列进行求和

时间:2016-12-02 16:23:13

标签: php mysql

我相信有一个很好的方法。我搜索并尝试但找不到。 我想加入三个这样的表(或者更好的方法,请建议)

SELECT listing.*, users.username, review.rNumber 
     FROM listing, users,review 
WHERE users.uid=listing.cuid and listing.lid=review.lID

但我不希望review.rNumber我想要像sum(rNumber)那样得到它的总和。因为一个列表可以有很多评论..谢谢..

以下是我想通过此查询实现的目标

  1. 列表中的所有值。
  2. 仅来自用户表的用户名
  3. 来自评论表的评论总和
  4. 关系是

    • users.uid = listing.cuid和listing.lid = review.lID 或
    • users.uid = listing.cuid = review.sellerID

    如果我需要添加表格,请告诉我.. 谢谢:))

1 个答案:

答案 0 :(得分:0)

您可以获得具有适当组别的用户的总和,但是对于所有列表结果的加入,您可以使用dinamic join

SELECT listing.*, t.username, t.sum_rNumber
fFROM listing
INNER JOIN users   ON users.uid=listing.cuid
INNER JOIN review ON listing.lid=review.lID
INNER JOIN (
      SELECT  users.username as username,  sum( review.rNumber) sum_rNumber
      FROM listing
      INNER JOIN users   ON users.uid=listing.cuid
      INNER JOIN review ON listing.lid=review.lID
      GROUP BY users.username
    ) t on users.username = t.username

(并且显式连接sintax更具可读性)