2016-05-17 29 views
2

我想要左连接多个表与两个总和列都加入中步表。左连接表与总和 - 导致问题

的表格看起来像:

表1

ID Value1 
1 3 
2 2 
3 3 

表2

ID Value1 
1 5 
2 2 
3 2 
4 1 

Jointable

ID 
1 
2 
3 
4 
5 
6 

我试图输出:

Table1Value1SUM Table2Value1Sum 
8 | 10 

随着SQL:

SELECT SUM(Table1.Value1) Table1Value1SUM,SUM(Table2.Value1) Table2Value1Sum From Table1 
Left Join JoinTable 
On JoinTable.ID = Table1.ID 
Left Join Table2 
On Table2.ID = Table1.ID 

我得到这些结果:

Table1Value1SUM Table2Value1Sum 
8 | 9 
+0

它在答复中提到,但你的连接表有绝对无关,与你的问题。此外,连接表至少有两列:一个表中的PK - 和另一个表中的PK(因此术语:“连接表”)。 –

回答

3

jointable必须是在left join版与另外两张桌子。

SELECT SUM(Table1.Value1) Table1Value1SUM,SUM(Table2.Value1) Table2Value1Sum 
From JoinTable 
Left Join Table1 On JoinTable.ID = Table1.ID 
Left Join Table2 On JoinTable.ID = Table2.ID 
1

Left JoinTable2JoinTable代替Table1

SELECT SUM(Table1.Value1) Table1Value1SUM,SUM(Table2.Value1) Table2Value1Sum From Table1 
Left Join JoinTable 
On JoinTable.ID = Table1.ID 
Left Join Table2 
On JoinTable.ID = Table2.ID 
0

有什么用jointable这来?你想Table 1和表2的总和,因此:

select 
    (select sum(value1) from table1) as table1sum, 
    (select sum(value1) from table2) as table2sum 

select t1.table1sum, t2.table2sum 
from 
    (select sum(value1) as table1sum from table1) t1 
cross join 
    (select sum(value1) as table2sum from table2) t2;