sql >> Database teknologi >  >> RDS >> Mysql

Hent alle registreringer af niveau 1, som kun har specificeret antal værdier i niveau 2

Deltag i tabellen med en underforespørgsel, der tæller antallet af rækker for den overordnede, og vælg kun dem med det antal, du ønsker.

SELECT DISTINCT a.level1 AS Parent, a.level2 AS Child
FROM yourTable AS a
JOIN (SELECT level1, COUNT(DISTINCT level2) AS children
      FROM yourTable
      GROUP BY level1) AS b
ON a.level1 = b.level1
WHERE children = :child

Erstat :child med antallet af børn, du prøver at matche.

DEMO

Bruger COUNT(Column2) i stedet for COUNT(*) vil ignorere rækkerne hvor Column2 er NULL , så den indeholder ikke A100 .




  1. Django:Jeg får en [relation auth_group exists not not] fejl efter syncdb

  2. Introduktion til PL/SQL-undtagelseshåndtering i Oracle-database

  3. Sådan indstilles værdien af ​​det sammensatte variabelfelt ved hjælp af dynamisk SQL

  4. 2 måder at indsætte en ny linje i en streng i SQLite