Gestion des UNION pas comprise

Eléphanteau du PHP | 47 Messages

18 avr. 2008, 21:28

En fait le sujet n'est pas résolu !

Image

Cette méthode n'enlève pas les doublons... Et oui, les n diffèrent

Administrateur PHPfrance
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

Eléphanteau du PHP | 47 Messages

18 avr. 2008, 21:55

C'est très astucieux... Bravo !

Définitivement réglé ! Encore merci.