3 つのテーブルを取得: pers、skills、articles (人はn 個のスキルを持ち、n 個の記事を書きました)
(T1) 人
1 John
2 Joe
(T2) スキル
1 John_sings
1 John_laughs
2 Joe_runs
(T3)記事
1 John_article_1
2 Joe_article_1
3 Joe_article_2
私が期待する:
John - John_laughs - John_article_1
John - John_sings - [NULL]
Joe - Joe_runs - Joe_article_1
Joe - [NULL] - Joe_article_2
2 つの別個の 1:n リレーションがあるため、この質問によると、T1 x T2 x T3 ではなく、(T1 x T2) x (T1 x T3) ではなく、連続した結合では実行できません。
私はもう試した:
SELECT child1.id,
child1.name,
child1.skill,
child2.title
FROM
(SELECT pers.id,
pers.name,
skills.skill
FROM pers
LEFT JOIN skills ON pers.id = skills.pers_id) child1
INNER JOIN
(SELECT pers.id,
article.title
FROM pers
LEFT JOIN article ON pers.id = article.pers_id) child2 ON child1.id = child2.id
しかし、これは示しています
John - John_laughs - John_article_1
John - John_sings - John_article_1
Joe - Joe_runs - Joe_article_1
Joe - Joe_runs - Joe_article_2
明らかに、"Joe_runs" を 2 回も "John_article_1" を 2 回も使用したくありません。
任意の提案に感謝します!