2015-04-14 3 views
0

У меня есть база данных с несколькими таблицами, которые имеют одинаковую структуру. Я хотел бы искать все эти таблицы в запросе sam. Как мне это сделать?Поиск нескольких таблиц с одинаковой структурой

Как это (фиктивной код):

SELECT COUNT(*), SUM(some_column), some_common_column 
FROM table1, table2, tabl3 

Есть ли способ, чтобы просто хлопнуть их всех вместе в запросе и рассматривать их как один? Слияние их не вариант.

+1

Делают UNION ALL (до GROUP BY.) Но почему у вас есть несколько таблиц с одинаковой структурой? – jarlh

+0

, если ваши таблицы имеют одинаковую структуру, лучше использовать одну таблицу с полем 'type', а затем вы запустите запрос. –

ответ

1

Вы должны использовать UNION:

SELECT COUNT(*), SUM(some_column), some_common_column FROM 
    (SELECT some_column, some_common_column FROM table1 
    UNION 
    SELECT some_column, some_common_column FROM table2 
    UNION 
    SELECT some_column, some_common_column FROM table3) 
GROUP BY some_common_column; 
+0

Почему не UNION ALL? – jarlh

+0

Возможно, вы захотите включить ссылку на документацию mysql об объединении: https://dev.mysql.com/doc/refman/5.0/en/union.html –

+1

Да, UNION ALL верен, так как сумма - это то, что необходимо , а не фактические совпадения (в противном случае он будет производить дубликаты, если одни и те же данные присутствуют в нескольких таблицах). Спасибо за замечание. –

-1

Нет, вы никогда не сможете сделать это без участия.