mysql - 如何内连接2个表并对第三个表求和

标签 mysql sql sum inner-join

我在使用 3 个表进行 mysql 查询时遇到问题。 我必须打印用户的 ID(在用户表上)、book_request 表中存在的请求时间,并对其他表上购买的书籍进行求和

select 
    U.id AS ID, 
    B.time_request AS Time,
    (select SUM(volume) from book_buyed O where O.user_id = 62) as BookBuyed 
 from book_request B 
 inner join users U on B.id_cliente = U.id

使用此代码可以正常工作,但我必须手动选择 id

如果我使用这个代码

select 
    U.id AS ID, 
    B.time_request AS Time,
    (select SUM(volume) from book_buyed O where O.user_id = U.id) as BookBuyed 
 from book_request B 
 inner join users U on B.id_cliente = U.id

如果我使用此代码,BookBuyed 列结果每次为 null

最佳答案

我一直试图避免选择查询嵌入到另一个查询的选择列表中:

select 
  U.id AS ID, 
  B.time_request AS Time,
  Bookbuyed.sumvol
from 
  book_request B 
  inner join users U on B.id_cliente = U.id
  inner join (select user_id, SUM(volume) sumvol from book_buyed group by user_id) as BookBuyed on u.id = bookbuyed.user_id

在连接区域中进行这些操作可以帮助我在心理上更好地将它们分割成“连接到其他数据 block 的数据 block ”;在这里,您可以设想首先计算出总和,然后将来自该子查询的结果数据输入到其他连接中,就好像它是一个表一样

关于mysql - 如何内连接2个表并对第三个表求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56819687/

相关文章:

php - 如果 from_user 已经发送了消息,如何忽略其他消息?

两列之间差异的MySQL SUM值

php - 如何对两个或多个相同的 mysql 表的结果求和?

mysql添加某些产品的总价

mysql - 如何用mysql计算每小时到一天

MYSQL无法选择日期

mysql - 丢失数据库 ibd 文件。尝试从崩溃中恢复数据库

mysql - 从表中获取列值作为 sql 查询结果中的键

mysql - 根据连接表计算 SQL 分数

sql - 更改要计算的列 SQL SERVER