一张表的总价,参考另外两个-Mysql

问题描述 投票:0回答:1

我有这三个表,我想获得链接到表1的表3的价格字段的总和,将表2链接到表1和3的表2:

表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
mysql sum
1个回答
0
投票

[Billy在Table 2 - Linked中没有记录,因此为了在结果集中包含Billy,您必须从表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;
© www.soinside.com 2019 - 2024. All rights reserved.