sql >> Base de Datos >  >> RDS >> Mysql

Obtenga todos los registros del Nivel 1 que solo tienen un número específico de valores en el Nivel 2

Únase a la tabla con una subconsulta que cuente el número de filas para el padre y seleccione solo las que tengan el número que desee.

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

Reemplazar :child con el número de niños que está tratando de emparejar.

DEMO

Usando COUNT(Column2) en lugar de COUNT(*) ignorará las filas donde Column2 es NULL , por lo que no incluirá A100 .