UNION spéciale :) [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 21-09-2006 à 15:30:33
select ...
from (
select ... from ...
union
select ... from ...
)
group by ...
order by ...
d'autres questions ?
Marsh Posté le 21-09-2006 à 15:37:30
Bah là :
SELECT id, tag
FROM (
SELECT count( id ) , tag FROM tags
UNION SELECT count( id_membre ) , style FROM membres
)
GROUP BY id
ORDER BY tag
Ca marche pas
Marsh Posté le 21-09-2006 à 15:54:32
poste au moins ton essage d'erreur, on n'est pas devins
d'ailleurs le "count(id)" si tu le renomme pas, mysql sais pas d'où tu cherche le "id" dans le selected externe.
idem pour le tag, d'autant qu'il s'appelle deux fois différement.
Marsh Posté le 21-09-2006 à 16:31:53
Ouép j'avais oublié de poster l'erreur
SELECT nb, tag
FROM (
SELECT count( id ) as nb , tag FROM tags
UNION SELECT count( id_membre ) as nb , style FROM membres
)
GROUP BY nb
ORDER BY tag
#1248 - Every derived table must have its own alias
Toujours la même erreur avec ou sans les "AS"
Marsh Posté le 21-09-2006 à 16:53:26
SELECT nb, tag
FROM (
SELECT count( id ) as nb, tag FROM tags
UNION SELECT count( id_membre ) as nb, style as tag FROM membres
)
GROUP BY nb
ORDER BY tag
Marsh Posté le 21-09-2006 à 17:00:42
ps : et un message d'erreur, c'est pas :
1/ fait pour être ignoré
2/ pour être copier/collé sans chercher à comprendre
le message est hyper explicite.
et le numéro d'erreur est documenté dans la doc officielle, avec des exemple en plus
Marsh Posté le 21-09-2006 à 15:28:55
Bonjour,
Je voudrais faire une UNION entre 2 tables mais un peu spéciale, je m'explique :
SELECT id,champ1 FROM table1 WHERE condition=1
UNION
SELECT id,champ2 FROM table2 WHERE condition=2
Mais en plus de cela, avoir un GROUP BY id (qui permettrait de compter les répétitions) ORDER BY champ1
Pour avoir au final :
count(id) | champ1
1 | blabla
1 | bloblo
5 | blibli
2 | bleble
Est-ce que ca se fait ?
Merci !
Message édité par zecoke le 21-09-2006 à 15:29:56