Récupérer les lignes MySql avec la même valeur de colonne
P粉464088437
P粉464088437 2023-11-10 21:53:39
0
2
861

Considérons le tableau suivant-

ID Score
1  95

2  100

3  88

4  100

5  73

Je suis un novice complet en SQL, mais comment puis-je renvoyer un score contenant les ID 2 et 4 ? Il devrait donc renvoyer 100 puisqu'il apparaît à la fois dans les ID 2 et 4

P粉464088437
P粉464088437

répondre à tous(2)
P粉237029457
SELECT score
FROM t
WHERE id in (2, 4)
HAVING COUNT(*) = 2 /* replace this with the number of IDs */

Cela sélectionnera les lignes avec les ID 2 et 4. Ensuite, la clause HAVING garantit que l'on trouve les deux lignes ; si l'une d'elles manque, le décompte sera inférieur à 2.

Cela suppose que id est la seule colonne.

P粉933003350

Ceci est un exemple de requête « ensemble dans un ensemble ». Je recommande d'utiliser la clause having pour l'agrégation car c'est la méthode la plus flexible.

select score
from t
group by score
having sum(id = 2) > 0 and -- has id = 2
       sum(id = 4) > 0     -- has id = 4

Ce que cela fait est agrégé par score. Ensuite, la première partie de la clause having 子句的第一部分 (sum(id = 2) (sum(id = 2)) compte le nombre de "2" qu'il y a dans chaque fraction. Le deuxième est le chiffre « 4 ». Seuls les scores « 2 » et « 4 » sont renvoyés.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal