2014-01-05 6 views
0

у меня есть 5 таблиц MySQL с таким же раскладом:Сумма из записей 3 Таблицы

name|||||||||points 
------------------- 
name1|10 
name2|9 
name3|11 

...

Я хочу, чтобы получить сумму от всех таблиц, от пользователя, так что результат должен быть как это:

name|||||||||points 
------------------- 
name1|90 
name2|59 
name3|61 
... 

Но моя проблема в том, что некоторые таблицы не могут содержать name1, например, таким образом, имя может быть также в 5 таблиц или в 1.

+0

Почему у вас есть несколько таблиц, подобных этому? В зависимости от остальной части вашей БД (и потенциальных перспективных направлений) создание одной таблицы с каким-либо столбцом дифференциатора вполне допустимо. –

ответ

1
SELECT Q.Name, SUM(Q.POINTS_COLUMN) Total 
FROM 
(
    SELECT Name , POINTS_COLUMN FROM TABLE_ONE 
    UNION ALL 
    SELECT Name , POINTS_COLUMN FROM TABLE_TWO 
    UNION ALL 
    SELECT Name , POINTS_COLUMN FROM TABLE_THREE 
    UNION ALL 
    SELECT Name , POINTS_COLUMN FROM TABLE_FOUR 
    UNION ALL 
    SELECT Name , POINTS_COLUMN FROM TABLE_FIVE 
) Q 
GROUP BY Q.NAME 
Смежные вопросы