【发布时间】:2015-02-20 20:57:47
【问题描述】:
我有两张桌子
帐户
ID | Deleted? | Type
1 | 0 | Father
2 | 0 | Son
3 | 1 | Son
4 | 1 | Son
5 | 0 | Father
6 | 0 | Father
7 | 1 | Son
8 | 0 | Son
9 | 0 | Father
10 | 1 | Son
Rel_Accounts
ID | SON | FATHER
1 | 4 | 6
2 | 3 | 6
3 | 2 | 5
4 | 4 | 1
5 | 7 | 1
6 | 8 | 9
7 | 10 | 9
我只想选择活跃(已删除 =0)的父亲 ID,他们确实有 SON 已删除 = 1:
FATHERS
6
1
当 FATHER = 0 但他的所有 SONs Deleted = 1 时,您如何获得这些记录?
我尝试了以下方法,但没有成功:
SELECT A.ID,
case when A.DELETED = 0
THEN (SELECT AH.SONS FROM ACCOUNTS_REL AH WHERE AH.FATHER = A.ID AND A.DELETED = 1)
END
FROM ACCOUNTS A
WHERE A.TYPE = 'Father'
预期结果是 1 和 6,因为他们是活跃的父亲,并且 所有他们的儿子都被删除。
【问题讨论】:
-
你尝试过什么吗?
-
我在描述中添加了...