Count et Group by et Order by en conflit. Un bug ou normal ?
Salut
Je vous fais part d'un phénomène qui me parais plutôt étrange sur une banale petite requête où le ORDER BY serait entre autre l'acteur principal.
La requête à l'origine : (c'est un système de ticket interne)
Code:
1 2 3 4 5 6 7 8 9 10 11
|
SELECT COUNT(*) AS total
FROM ticket t
JOIN ticket_history th ON t.ticket_id = th.ticket_id
JOIN ticket_status ts ON t.status_id = ts.status_id
WHERE t.users_id = 100
AND th.publier = 1
AND t.status_id = 1
GROUP BY t.ticket_id
ORDER BY t.date_created DESC
LIMIT 1 |
Cette requête retourne 2 pour "total", MySQL trouve donc 2 lignes. :aie:
Or, je sais qu'il y en a 3.
-> 1 ligne ticket_id pour le user_id 100 dans la table ticket
-> 3 lignes ticket_id dans la table ticket_history (3 réponses).
Je supprime dans la requête le ORDER BY (ORDER BY t.date_created DESC), et hop, cette fois MySQL trouve bien les 3 lignes.
Depuis quand un ORDER BY agirait sur le nombre de ligne à retourner ?
Personnellement je le trouve un peu fort l'café, même ici le ORDER BY n'était pas utile. :mrgreen:
Selon vous, c'est normal ou pas ?
Une explication serait le bienvenu. ;)