Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Selecionar registro pai com todos os filhos no SQL


Contando com um truque numérico (onde o número de links pai-filho =o número de filhos, esse pai está vinculado a todos os filhos):
SELECT Parent.ParentID, COUNT(*)
FROM Parent
INNER JOIN ChildParent
    ON ChildParent.ParentID = Parent.ParentID
INNER JOIN Child
    ON ChildParent.ChildID = Child.ChildID
WHERE <ChildFilterCriteria>
GROUP BY Parent.ParentID
HAVING COUNT(*) = (
    SELECT COUNT(Child.ChildID)
    FROM Child WHERE <ChildFilterCriteria>
)