recherche

Maison  >  Questions et réponses  >  le corps du texte

Récupérer les lignes MySql avec la même valeur de colonne

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粉464088437P粉464088437456 Il y a quelques jours893

répondre à tous(2)je répondrai

  • P粉237029457

    P粉2370294572023-11-11 20:57:58

    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.

    répondre
    0
  • P粉933003350

    P粉9330033502023-11-11 10:43:35

    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.

    répondre
    0
  • Annulerrépondre