sql >> Database >  >> RDS >> Sqlserver

Selecteer bovenliggende record met alle kinderen in SQL

Vertrouwen op een numerieke truc (waarbij het aantal ouder-kind links =het aantal kinderen, die ouder is gekoppeld aan alle kinderen):

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>
)


  1. De beste manier om waarden in SQL te interpoleren

  2. Hoe group by te gebruiken in SQL Server-query?

  3. Tel rijen na het samenvoegen van drie tabellen in PostgreSQL

  4. Hoe maak je een synoniem in mysql