Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Obtenha todo o registro do Nível 1 que tenha apenas o número especificado de valores no Nível 2


Junte a tabela com uma subconsulta que conta o número de linhas para o pai e selecione apenas aquelas com a contagem desejada.
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

Substitua :child com o número de crianças que você está tentando igualar.

DEMO

Usando COUNT(Column2) em vez de COUNT(*) irá ignorar as linhas onde Column2 é NULL , portanto, não incluirá A100 .