在SQL中选择包含所有子项的父记录
发布时间:2020-12-12 06:33:09 所属栏目:MsSql教程 来源:网络整理
导读:假设我有两个表,“父母”和“孩子”. Parent-to-Child是一个很多:很多关系,通过标准的交叉引用表实现. 我想查找使用SQL的给定Child组的所有成员引用的Parent的所有记录(特别是MS SQL Server的T-SQL; 2005语法是可接受的). 例如,假设我有: 列表项目 父爱丽丝
假设我有两个表,“父母”和“孩子”. Parent-to-Child是一个很多:很多关系,通过标准的交叉引用表实现.
我想查找使用SQL的给定Child组的所有成员引用的Parent的所有记录(特别是MS SQL Server的T-SQL; 2005语法是可接受的). 例如,假设我有: >列表项目 我的目标是: >如果我有Child Charlie,我希望结果集包括Alice和Bob 解决方法依赖于数字技巧(其中父子链接的数量=子节点数,父节点链接到所有子节点):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> ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |