mysql - 查找带子项的父项

时间:2010-10-07 11:29:17

标签: mysql

我有两张桌子

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解决方案。

2 个答案:

答案 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