Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So geben Sie Zeilen mit denselben Spaltenwerten in MySql zurück

Dies ist ein Beispiel für eine "Sets-in-Sets"-Abfrage. Ich empfehle die Aggregation mit dem having -Klausel, da dies der flexibelste Ansatz ist.

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

Was dies tut, ist das Aggregieren nach Punktzahl. Dann der erste Teil des having -Klausel (sum(id = 2) ) zählt hoch, wie viele "2" es pro Punktzahl gibt. Die zweite zählt aufwärts, wie viele "4"s. Es werden nur Ergebnisse zurückgegeben, die eine "2" und "4" haben.