Объединение трех таблиц по повторяющимся строкам
У меня есть таблица Parent
с перечнем родителей в столбце ParentId
, таблица Children
с перечнем детей в столбце ChilId
и таблица ParentChildren
с их отношением (id, ChildId, ParentId)
. У некоторых детей в таблице Parent
оба родителя, также среди них есть братья-сестры.
Мне нужно получить таблицу, в которой будут перечислены родители-супруги, имеющие двух и более детей. Получается, если в семье два ребенка, то на каждого будет по два родителя, итого два ребенка=4 строки с родителями. Помогите составить Join, пожалуйста
Так у меня получилось выгрузить повторяющиеся id детей, но эта выборка дает только отношение один ребенок-два родителя, а нужно два ребенка-два родителя(по строкам получится как бы 4 родителя):
SELECT *
FROM ParentChildren
WHERE ChildId IN (
SELECT childId FROM ParentChidren
GROUP BY ChildId HAVING COUNT(*) > 1)
ORDER BY ParentId
Источник: Stack Overflow на русском