У меня есть 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
Основываясь на интенсивном поиске в googling и огромном запутанности (я плохо разбираюсь в SQL, так как у меня нет свободного времени, чтобы учиться вне моего колледжа), у меня есть вывод, чтобы использовать внутреннее соединение и подзапрос, например ниже (что я не знаю, правильно оно или laughstock):
select driverid, point from usa a, russia b, japan c inner join (select driverid as Driver, sum(point) group by points);
Я также подумал, что мне нужно написать 20 внутренних объединений (как показано ниже) для подключения значений драйвера между таблицами? (Я создал таблицу для драйвера, которая содержит driverid как первичный ключ. Вся таблица, используемая для записи точек, использует внешний ключ из таблицы драйверов)
На самом деле очень ценю любую помощь в этом деле
Вы хотите объединить все:
select driver, sum(points)
from ((select driver, points from usa) union all
(select driver, points from russia) union all
. . .
) c
group by driver;
Попробуй это:
Select * From Table1
UNION ALL
Select * From Table2
UNION ALL
Select * From Table3
.
.
.
GROUP BY Driver
Где Table1, Table2, Table3 и т.д. Являются именами ваших фактических таблиц