在SQL中选择包含所有子项的父记录
发布时间:2020-05-24 15:24:48 所属栏目: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>
) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
