mysql - 如何用一个输出连接三个表
问题描述
我有下面的 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 个表的内部联接。
非常感谢
解决方案
看来你需要简单
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 添加。
推荐阅读
- excel - 我的 Excel“运行时错误 91:对象变量或未设置块变量”
- c - cc 编译器和缓存
- css - 布局在 nuxt.js 中重叠
- firebase - firestore 是否支持 where 子句中的 BETWEEN 条件
- typo3 - TYPO3 8.7:自定义字段未从自定义扩展添加到 tt_content 表中
- java - 如何在 docker 上管理 Java 和 Python 应用程序?
- javascript - 将 bootstrap-vue 模式附加到应用程序模板
- php - 会话超时时如何配置重定向 URL - Laravel 5.8?
- excel - 使用自定义格式将 Excel 中的行转换为列
- python - torch.matmul和python内置@运算符做矩阵乘法的区别