php - 如何在一次连接三个表的同时对列求和

标签 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. 评论表中的评论总和

关系是

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

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

最佳答案

您可以通过适当的分组依据获得用户的总和,但要加入所有列表结果,您可以使用动态加入

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

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

关于php - 如何在一次连接三个表的同时对列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40936717/

相关文章:

php - 在 Woocommerce 管理订单列表中有条件地隐藏特定操作按钮

php - 通过扩展类在其外部使用wordpress 4.0?

php - 如何在 WordPress 中显示来自 get_children 数组的特定图像

php - insertBefore() 无法与 PHP DOM 一起正常工作

mysql - 可以将 phpMyAdmin "internal relations"配置为在一列上进行查找并从另一列插入值吗?

MySQL:存储来自可能在表单上显示可变时间的字段的值

mysql - SQL如何选择参数的父id或id(如果没有父)

PHP 返回数组或-1

php 数字从 mysql asc 排序

mysql - 为规划事件 Web 应用程序设计设备库存 mysql 数据库表的建议