首页 > 解决方案 > 如何用一个输出连接三个表

问题描述

我有下面的 sql 语句,我希望加入 3 个表并有 1 个输出。问题是,没有错误,但没有显示我想要的输出。

$sql = "select distinct(sales_table.sales_id), trades_table.t_symbol, round(sum(trades_table.t_volume),2) as totalvol from trades_table inner join accounts_table on trades_table.t_login = accounts_table.a_login inner join sales_table where accounts_table.a_comment = sales_table.sales_id  group by trades_table.t_symbol";

我的表格文件

销售表

sales_id 销售名称
约翰 约翰·多伊
杰克 杰克狗

交易表

交易 t_login t_symbol t_volume
1111 4000 脸书 2.00
1112 4001 特斯拉 1.00
1113 4001 特斯拉 1.00
1114 4002 苹果 3.00

帐户表

a_login 一个名字 一条评论
4000 测试1 约翰
4001 测试2 约翰
4002 测试2 杰克

我想到的期望输出是

约翰

trades_table.t_symbol 回合(总和(trades_table.t_volume),2)
脸书 2.00
特斯拉 2.00

杰克

trades_table.t_symbol 回合(总和(trades_table.t_volume),2)
苹果 3.00

我希望有人可以帮助我如何正确使用 3 个表的内部联接。

非常感谢

标签: mysqlsqljson

解决方案


看来你需要简单

SELECT t1.a_login, t3.t_symbol, SUM(t3.t_volume) total_volume
FROM accounts_table t1
JOIN sales_table t2 ON t1.a_comment = t2.sales_id
JOIN trades_table t3 ON t1.a_login = t3.t_login
GROUP BY t1.a_login, t3.t_symbol

如果您只需要在数据中指定,t1.a_login则根据 WHERE 添加。


推荐阅读