疲倦阻止我找到这个...说你有以下表格:
亲
儿童
我想要一个查询返回以下true(1,在Oracle的情况下)如果父项至少有一个已经毕业的子项,并且假(如果是Oracle则为0)如果父项没有子项毕业了,或者根本没有孩子:
PARENT_ID ................ HAS_CHILDREN_WHO_GRADUATED
5 ................................. 1
3 ................................. 1
6 ................................. 0
2 ................................. 0
在上面,parent_id = 5的父亲可能有> = 1个已毕业的孩子.父母与parent_id = 3相同.parent_id = 6的父母要么根本没有孩子,要么有孩子,但没有孩子毕业.
对此的查询是什么样的?
使用:
SELECT DISTINCT
p.parent_id,
CASE WHEN c.parent_id IS NULL THEN 0 ELSE 1 END
FROM PARENT p
LEFT JOIN CHILD c ON c.parent_id = p.parent_id
AND c.has_graduated = 1
Run Code Online (Sandbox Code Playgroud)
您必须使用外部联接才能查看子表中没有支持记录的父值.