MySQL de l'UNION de la Chaque table dérivée doit avoir son propre alias

Je suis à la recherche d'une solution:

SELECT SUM(`quant`), MONTH(`date`) AS month, `id` from (
(SELECT `date`, `id`, count(`hit`) AS `quant ` FROM `stat_2014_07` WHERE `k_id` = '123') 
UNION ALL 
(SELECT `date`, `id`, count(`hit`) AS `quant ` FROM `stat_2014_08` WHERE `k_id ` = '123') 
) group by id, month

MySQL: Chaque table dérivée doit avoir son propre alias

Vous devez ajouter un alias, par gving des sous-requêtes d'un nom après votre clôture ). Donc, quelque chose comme (SELECT foo FROM bar) thisisaderivedtablealias. Vous pouvez omettre le ()'s autour de l'intérieur 2 requêtes dans votre UNION de TOUS BTW.
Les Tables qui ont la même structure, mais seulement différentes dans leurs noms sont généralement signe d'une mauvaise conception de base de données. Un union all serait inutile si vous aviez un tableau appelé stats qui avait données à partir de tous les mois.

OriginalL'auteur user3270967 | 2014-08-16