我有两张桌子
parent{
parent_id
}
child{
child_id
parent_id
}
我需要找到参数为child id
的父级Ex:找到父母有完全孩子(1,2,3)
我尝试了“where child_id IN(1,2,3)”但如果父母有孩子(1,2,3,4),它将返回不正确的父母
我可以使用php进行硬编码,但我要求使用mysql解决方案。
答案 0 :(得分:1)
也许添加一个COUNT()条件,如果父母有(1,2,3)儿童和3个孩子,这一切都很好!
SELECT *
FROM parent NATURAL JOIN child
WHERE child.child_id IN (1, 2, 3)
GROUP BY parent.parent_id
HAVING COUNT(child.child_id) = 3
(未经测试)
答案 1 :(得分:0)
我找到了解决方案
SELECT parent_id, child_id, count(child_id) as n, sum(child_id) as m FROM child
group by parent_id
HAVING child_id IN (1, 2, 3) AND n = 3 AND m = 6