我有20个相同列的表,下面有几个例子:
Australian GP DRIVER | Points ================ HAM | 25 VET | 20 RIC | 15 Japanese GP Driver | Points ============== HAM | 25 VET | 20 RIC | 15 Malaysian GP Driver | Points RIC | 25 HAM | 20 VET | 15
我打算加入所有20个表和所有20个驱动程序数据,如下所示:
Championship Standings Driver | Points HAM | 70 VET | 65 RIC | 50
基于强烈的谷歌搜索和大量的混乱(我在SQL上很糟糕,因为我没有空闲时间在我的大学之外学习),我得出结论使用内部联接和子查询如下(我不知道是不是正确或笑声):
select driverid, point from usa a, russia b, japan c inner join (select driverid as Driver, sum(point) group by points);
我还认为我必须编写20个内部联接(如下例所示)来连接表之间的驱动程序值吗? (我为Driver创建了一个表,其中包含driverid作为主键。所有用于写入点的表都使用来自驱动程序表的外键)
非常感谢有关此案例的任何帮助
答案 0 :(得分:0)
你想要联合所有`:
select driver, sum(points)
from ((select driver, points from usa) union all
(select driver, points from russia) union all
. . .
) c
group by driver;
答案 1 :(得分:0)
试试这个:
Select * From Table1
UNION ALL
Select * From Table2
UNION ALL
Select * From Table3
.
.
.
GROUP BY Driver
Table1,Table2,Table3等是实际表的名称