J'ai un problème de retour des lignes dans une requête commandée / groupée.
J'essaie d'obtenir la dernière ligne de type 2 sur une table, j'ai donc utilisé une commande de premier groupe ultérieur. p>
exemple Table: p> si je fais p> Il retourne: P> alors si je fais p> i obtient: p> groupe Par ne pas avoir la première rangée du groupe? Comment puis-je obtenir la dernière ligne comme: p> merci !!! p> p> p>
3 Réponses :
1st de tous, au meilleur de ma connaissance, votre requête devrait fonctionner correctement. Peut-être que c'est une question de versions MySQL comme suggérées dans les commentaires
comme pwe Votre question, la solution devrait être d'arriver à la solution qui n'utilise pas Dans ce cas, la commande en apporte d'abord la ligne nécessaire, la limite ne fait qu'une ligne à retourner p> une autre approche, moins efficace, est par dans cette approche, l'inégalité applique la dernière ligne de TYE non être joint à l'autre table
Le filtrage par ces critères extraire la dernière ligne p> p> groupe par code>. Du
commander par code> +
limite code>
Par exemple: p>
rejoindre gauche code> +
null code>: p>
Pour obtenir la dernière ligne de chaque type P>
Vous pouvez utiliser non pas existant: p>
xxx pré> blockQuote>
mySQL ne garantit pas l'ordre des lignes en groupe par des colonnes non agrégées. La requête que vous avez écrite ne fonctionnera pas de manière cohérente et produira des valeurs non déterministes.
Pour obtenir les données que vous souhaitez, Vous pouvez effectuer la requête suivante: p> Dans votre requête, vous regroupez par type mais essayant d'obtenir toutes les autres colonnes qui ne font pas partie de l'agrégation, il ne fonctionnera donc pas Correctement, et au cas où uniquement_full_group_by code> Le mode SQL est activé, la requête sera considérée comme invalide. p>
Cette solution m'a beaucoup aidé, j'ai apporté des changements dans le choix, car ma vraie table est plus complexe. Merci.
Ceci est probablement le bug mysql présent dans MySQL avant 5.7.5, où MySQL n'a pas appliqué les colonnes devraient être présentes dans le groupe
par code> clause ou agrégée.
MySQL est notoire pour permettre au groupe
par code> sans agrégats, etc. dans les colonnes de résultat si ce n'est pas en mode strict. Il retournera la rangée du groupe qu'il veut. N'utilisez pas de telles questions.
Merci! Donc, quelle est la bonne façon d'obtenir la dernière ligne de chaque type dans une table?