として同じ行を選択:私は確認することはできませんのMySQL:3つのテーブルを結合し、私は次のようにのようなもので3つのテーブルを結合する別名
SELECT a.id
FROM tableA AS a
LEFT JOIN tableB AS b ON a.id = b.id
LEFT JOIN tableC AS c ON a.id = c.id
WHERE
b.name = c.name OR b.name IS NULL OR c.name IS NULL;
、そのテーブルbまたはcがあります結合する行がある場合、名前列は同一でなければなりません。
私の質問は:この名前の列を選択したいが、一度だけ選択したい。したがって、bとcに参加する行がある場合は、どちらかから名前が必要です。参加する行が1つしかない場合は、その行の名前が必要です。 結果の列名は、それぞれ同一である必要があります。
表例
にtableA
id
----
1
2
3
4
TABLEB
id | name
----|------
2 | X
3 | Y
表C
id | name
----|------
2 | Q
3 | Y
4 | Z
所望の結果:
id | name
----|------
1 | (NULL)
2 | X (name is from tableB)
2 | Q (name is from tableC)
3 | Y (name is from tableB or tableC)
4 | Z (name is from tableC)
を削除TABLEBが二回言及されています。 – Strawberry
ありがとう、私はそれを訂正しました – jacksbox