La seule ligne avec la valeur maximale dans la table SQL avec une extraction efficace
Les tables SQL incluent souvent plusieurs lignes avec les mêmes valeurs de colonne. Lorsque vous récupérez les données de ce type de table, il est important d'extraire la seule ligne avec les dernières informations ou la valeur maximale des colonnes spécifiques. Ceci est particulièrement utile dans la mise à jour continue des données.
Supposons qu'un tableau appelé "mytable" comprend "UserId", "Value" et "Date". Afin de récupérer la «valeur» et la «valeur» correspondant à chaque valeur unique «utilisateur», nous pouvons utiliser une technologie SQL efficace sans compter sur la sous-requête.
Dans cette requête, nous utilisons la connexion externe gauche entre les deux instances (T1 et T2) de "Mytable". Les conditions de connexion garantissent ces lignes qui correspondent à la grande valeur de "date" en T1. Par la suite, la clause WHERE filtre toutes les lignes avec une ligne de correspondance avec une plus grande valeur "Date" en T2, ne laissant que les lignes correspondant à la plus grande valeur "date" de chaque "utilisateur" unique.
<code class="language-sql">SELECT t1.* FROM mytable t1 LEFT OUTER JOIN mytable t2 ON (t1.UserId = t2.UserId AND t1."Date" < t2."Date") WHERE t2.UserId IS NULL;</code>
Une autre façon de considérer plusieurs lignes avec la même date maximale est:
Dans cette variante, nous utilisons des conditions de connexion plus fines pour traiter la duplication potentielle avec la même valeur de "date" maximale. En introduisant des conditions supplémentaires (t1.id & lt; t2.id), nous pouvons nous assurer que seule la ligne unique avec l'ID minimum. (En supposant que
<code class="language-sql">SELECT t1.* FROM mytable t1 LEFT OUTER JOIN mytable t2 ON t1.UserId = t2.UserId AND ((t1."Date" < t2."Date") OR (t1."Date" = t2."Date" AND t1.id < t2.id)) WHERE t2.UserId IS NULL;</code>
id
Grâce à ces méthodes, nous pouvons extraire efficacement la ligne unique avec la valeur de date maximale de la table SQL, en évitant la sous-requête complexe et en améliorant l'efficacité de la requête.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!