我在使用 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/