Administrateur PHPfrance |
3088 Messages
18 avr. 2008, 21:42
Ah oui c'est vrai, l'ajout d'une colonne remet en cause le dédoublenement d'UNION [DISTINCT].
En fait, ce qu'il faudrait changer, c'est la façon de procéder : tu utilises une UNION alors que le premier set est un sous-set du second. Puisque tu te sers d'UNION pour trier les résultats, on devrait pouvoir faire une requête équivalente en utilisant un ORDER BY adapté.
Cette requête devrait être fonctionnellement équivalente, à tester.
Code : Tout sélectionner
SELECT s2.sujet_id, COUNT(*) AS cnt, MAX(s2.sujet_nom LIKE '%[Réglé]%') AS regle
FROM fsb_messages m2
JOIN fsb_sujets s2 USING ( sujet_id )
WHERE s2.sujet_nom LIKE '%asm%'
GROUP BY s2.sujet_id
ORDER BY regle DESC, cnt DESC