2012-06-06 3 views
2

Проще сказать, но я не могу найти синтаксис или даже пример даже близко! Примем следующие таблицы:MySQL: sum() и объединение из нескольких таблиц

Table:'Red' 
Fields: id | sm | md | lg 
Data: 1 | 3 | 5 | 7 
     2 | 9 | 8 | 7 
     3 | 2 | 4 | 6 

Table:'White' 
Fields: id | sm | md | lg 
Data: 1 | 0 | 0 | 0 
     2 | 0 | 0 | 0 
     3 | 0 | 0 | 0 

Table:'Blue' 
Fields: id | sm | md | lg 
Data: 1 | 1 | 1 | 1 
     2 | 1 | 1 | 1 
     3 | 1 | 1 | 1 

Все, что я хочу, это всего все, но сохранить строки, как в следующей таблице:

Table:'Total' 
Fields: id | sm | md | lg 
Data: 1 | 4 | 6 | 8 
     2 | 10 | 9 | 8 
     3 | 3 | 5 | 7 

Затем создайте время цикла в PHP эхо обратно результаты. Что-то вроде этого:

<?php 

while($row = mysql_fetch_array($get_totals)) 
{ 
echo <td>".$row[sm]."</td><td>".$row[md]."</td><td>".$row[lg]."</td>"; 
} 

?> 

Я не могу понять это. Любая помощь? Мне просто нужен оператор выбора php, который будет работать здесь.

ответ

2

Не тестировалось, но должно работать:

SELECT id, SUM(sm) as sm, SUM(md) as md, SUM(lg) as lg FROM (
    SELECT * FROM Red 
    UNION ALL 
    SELECT * FROM White 
    UNION ALL 
    SELECT * FROM Blue 
) AS somealias 
GROUP BY id 
+0

Одд .... я получил сообщение об ошибке: Каждая производная таблица должна иметь свой собственный псевдоним – user1261388

+0

Какую ошибку вы получаете? – WojtekT

+0

Забыл алис за результаты ... пока что так хорошо !!! – user1261388

Смежные вопросы