mysql - 参考其他两个表的总价格 - Mysql
问题描述
我有这三个表,我想获得链接到表 1 的表 3 的价格字段的总和,表 2 链接到表 1 和表 3:
表 1 - 技术
+--------------+------------+
| id_tecnic | name |
+--------------+------------+
| 1 | Michael |
| 2 | Billy |
| 3 | Joe |
+--------------+------------+
表 2 - 链接
+--------------+------------+------------+
| id_linked | id_tecnic | id_mer |
+--------------+------------+------------+
| 1 | 1 | 4 |
| 2 | 3 | 1 |
| 3 | 3 | 2 |
+--------------+------------+------------+
表 3 - Mer
+--------------+------------+
| id_mer | price |
+--------------+------------+
| 1 | 30 |
| 2 | 70 |
| 3 | 50 |
| 4 | 10 |
+--------------+------------+
结果
+--------------+------------+-------------+
| id_tecnic | name | total_price |
+--------------+------------+-------------+
| 1 | Michael | 10 |
| 2 | Billy | 0 |
| 3 | Joe | 90 |
+--------------+------------+-------------+
我试过这个:
SELECT te.id_tecnic,
SUM(m.price)
FROM tecnic te
LEFT JOIN linked l ON te.id_tecnic = l.id_tecnic
LEFT JOIN mer m ON l.id_mer = m.id_mer
GROUP BY te.id_tecnic
解决方案
比利没有记录,Table 2 - Linked
所以为了让比利在结果集中,你必须从 table 开始Table 3 - Mer
,比如:
SELECT te.id_tecnic, te.name, SUM(m.price)
FROM mer m
LEFT jOIN linked l ON l.id_mer = m.id_mer
LEFT JOIN te ON te.id_tecnic = l.id_tecnic
GROUP BY te.id_tecnic;
推荐阅读
- git - 我 git aborted rebase 并失去了我所有的工作
- excel - 为什么我会收到此编译错误:类型不匹配
- flutter - 无效值:有效值范围为空:0 Flutter
- reactjs - 将状态从一个组件传递到另一个组件
- excel - VBA Excel 宏另存为脑筋急转弯
- r - {assertr} 用于多变量条件限制
- arrays - Swift在方括号包装数组之后立即关闭做什么
- android - 为什么 bliss os 使用 qemu 会在启动时挂起?
- javascript - 我需要一个贝宝按钮来替换提交按钮。现在我两者都有,这很奇怪
- python - 使用 PIL 创建多级椭圆