在MySQl中,如何从多个表链接获取项目的数据总和

时间:2015-06-03 08:35:38

标签: mysql

我有三张如下表。

Table 1
Name Value  Details

A     1     XXA
B     2     XXB
C     3     XXC

Table 2     

Name     Table1 Name    Data
1          A            1234
2          A            2345
3          B            4567
4          C            5678

并且

Table 3     


Name    Table2Data  Amount
Ran1    1234         10
Ran2    2345         20
Ran3    4567         30
Ran4    4567         40
Ran5    5678         50
Ran6    1234         60

我需要获得如下所示的查询结果

Total Amount for each item in Table 1                   

Table 1 Row 1 (A)   Table 1 Row2 (B)    Table 1 Row 3 ( C)  ----
       90                  70                 50            ----

我们如何才能实现同样的目标。从三个表中我需要获取值,但需要将其排列在上面的列中。

2 个答案:

答案 0 :(得分:2)

您可以使用条件总和。像这样:

SELECT
    SUM(CASE WHEN Name='A' THEN Table3.Amount ELSE 0 END) AS A,
    SUM(CASE WHEN Name='B' THEN Table3.Amount ELSE 0 END) AS B,
    SUM(CASE WHEN Name='C' THEN Table3.Amount ELSE 0 END) AS C
FROM
    `Table1`
    JOIN Table2
        ON Table1.Name=Table2.Table1Name
    JOIN Table3
        ON Table2.Data=Table3.Table2Data

答案 1 :(得分:0)

实际上,不需要条件和,您可以使用GROUP BY将行组合在一起JOIN

SELECT 
    Table1.Name, SUM(Table3.Amount)
FROM 
    Table1
    JOIN Table2 ON Table1.Name = Table2.Table1Name
    JOIN Table3 ON Table2.Data = Table3.Table2Data
GROUP BY Table1.Name