MySQL:非常不可能加入(4我)

时间:2013-12-06 22:39:48

标签: mysql join

我无法解释这个,我举了一个例子。

表1

Client_ID |Name     |Sector   |
----------|---------|---------|
40302025  |Peter    |commerce |
40302028  |Paul     |business |
40302030  |Moreno   |Services |
40302055  |Jack     |commerce |
40302074  |Mark     |Services |

表2

Client_ID |Name     |Dollars   |
----------|---------|----------|
40302025  |Peter    |200.000,00|
40302025  |Peter    |300.000,00|
40302028  |Paul     |200.000,00|
40302028  |Paul     |200.000,00|
40302030  |Moreno   |100.000,00|
40302030  |Moreno   |200.000,00|
40302030  |Moreno   |500.000,00|
40302055  |Jack     |10.000,00 |
40302055  |Jack     |20.000,00 |
40302055  |Jack     |500.000,00|
40302055  |Jack     |30.000,00 |
40302074  |Mark     |20.000,00 |
40302074  |Mark     |5.000,00  |
40302074  |Mark     |10.000,00 |
40302074  |Mark     |20.000,00 |
40302074  |Mark     |40.000,00 |

现在我想要使用这个结果来引用table2.sector的Table2.Dollars:

结果

Sector    |Total_dollars|
----------|-------------|
commerce  |1.060.000,00 |
Services  |895.000,00   |
business  |400.000,00   |

第一行:彼得和杰克(两者都在“商业”部门)的美元总和

第二行:Moreno和Mark的美元总和(两者都在“服务”部门)

第三行:仅保罗(“商业”部门)的美元总和

注意:表2中我没有“扇区”字段

我快要发疯了

我认为加入一个加入......等等......我不知道如何开始

有什么想法吗?

非常感谢

的奥斯卡

1 个答案:

答案 0 :(得分:4)

这实际上非常简单:

SELECT t1.sector,SUM(t2.dollars)
FROM table1 t1
INNER JOIN table2 t2 ON t1.client_id = t2.client_id
GROUP BY t1.sector;

JOIN使两个表中的所有列都可供您使用。:

          Table1              |        Table2
----------|---------|---------|----------|---------|----------|
Client_ID |Name     |Sector   |Client_ID |Name     |Dollars   |
----------|---------|---------|----------|---------|----------|
40302025  |Peter    |commerce |40302025  |Peter    |200.000,00|
40302025  |Peter    |commerce |40302025  |Peter    |300.000,00|
  ...

然后,你想要的是table1中的扇区和table2中的SUM美元。然后,您GROUP BY扇区,以便为每个扇区计算SUM的结果。


p.s。:您应该只在一个表中使用客户端名称,并且只要您想引用该客户端就使用client_id。