У меня возникли проблемы с запросом в MySQL отношения «сам-ко-многим», у меня есть таблица Person и таблица Friendship
Person
pid |имя |возраст
1 Джимми 18
2 Лукас 25
3 Мари 12
4 Мари 40
5 Джон 30
Дружба
пид |pId2
1 3
2 3
4 1
5 3
Так что мне нужно проверить, что друзья Мари (правильный ответ: Лукас и Джон)
с последующим запросом я получил ответ по pid
SELECT p.name
FROM Person p
WHERE EXISTS(SELECT NULL
FROM Friendship f
WHERE p.pid = f.pid
AND (f.pid2 = 4 OR f.pid2 = 3))
OR EXISTS(SELECT NULL
FROM Friendship f
WHERE p.pid = f.pid2
AND (f.pid = 4 OR f.pid = 3))
, но что, если мне нужно запросить по имени? Следующий не работает
SELECT p.name
FROM Person p
WHERE EXISTS(SELECT NULL
FROM Friendship f
WHERE p.pid = f.pid
AND f.pid2 = (SELECT pid FROM Person WHERE name = 'Marie'))
OR EXISTS(SELECT NULL
FROM Friendship f
WHERE p.pid = f.pid2
AND f.pid = (SELECT pid FROM Person WHERE name = 'Marie'))
спасибо за вашпомогите ребята