2010-10-07 17 views
0

У меня есть две таблицыMySQL - Найти родителя с ребенком

parent{ 
    parent_id 
} 

child{ 
    child_id 
    parent_id 
} 

Мне нужно найти родителей с параметрами являются дети ID

Ex: Найти родитель точно дети (1, 2, 3)

Я попытался "Где child_id IN (1, 2, 3)", но он будет возвращать неправильный родителя в случае, если родитель имеет детей (1, 2, 3, 4)

я могу жесткий код с PHP, но я попросите решение mysql.

ответ

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 

(не проверено)

+0

Вы можете написать мне запрос: D – complez

+0

Смотрите мой выбор, может быть, он будет работать. – MatTheCat

+0

Это не работает, но я нашел решение самостоятельно. – complez

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 
Смежные вопросы