Cra*_*ker 8 sql t-sql sql-server sql-server-2005
假设我有两个表,"父"和"孩子".Parent-to-Child是一个很多:很多关系,通过标准的交叉引用表实现.
我想查找使用SQL的给定Child组的所有成员引用的Parent的所有记录(特别是MS SQL Server的T-SQL; 2005语法是可接受的).
例如,假设我有:
我的目标是:
依赖于数字技巧(父子链接的数量=子节点数,父节点链接到所有子节点):
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>
)
Run Code Online (Sandbox Code Playgroud)