このクエリを実装するロジックを考えようとしましたがmysql
、何も考えられなかったり、インターネット上で何かを見つけたりすることができませんでした。私の仕事は、Join
2 つ以上のテーブルを対象とし、一致するフィールドを返すことです。ただし、2 つのテーブルの行に一致する 3 つのテーブルがある場合も表示する必要があります。これらの 3 つのテーブルがあるとします。
Table1-
num |info
----------
1 |aaaaa
2 |bbbb
3 |ccc
4 |dddd
4 |dddd
5 |eeee
Table2-
num |info
----------
2 |bbbb
3 |ccc
4 |dddd
5 |eeee
Table3-
num |info
----------
1 |aaaaa
2 |bbbb
6 |ffff
7 |gggg
これら 3 つのテーブルを結合して、次のような結果を得たいと考えています。
Result-
num |info num |info num |info
----------- ----------- ----------
1 |aaaaa NULL|NULL 1 |aaaaa
2 |bbbb 2 |bbbb 2 |bbbb
3 |ccc 3 |ccc NULL|NULL
4 |dddd 4 |dddd NULL|NULL
4 |dddd 4 |dddd NULL|NULL
5 |eeee 5 |eeee NULL|NULL
3つのテーブルすべてにあることのみを示すこのクエリがあります。
SELECT a . * , b. * , c . *
FROM tbl_1 a
JOIN tbl_2 b ON a.num = b.num
JOIN tbl_3 c ON a.num = c.num
ORDER BY a.num, b.num
しかし、私が望むのは、値が2つのテーブルに表示されていても表示することです。
どうもありがとうございました。これが解決される前に対処されていれば、私を正しい方向に向けるのに大いに役立ちます:)ありがとう
テーブル構造の更新
Table1-
num |info
----------
1 |aaaaa
2 |bbbb
3 |ccc
3 |ccc
4 |dddd
Table2-
num |info
----------
1 |aaaaa
3 |ccc
4 |dddd
5 |eeee
6 |ffff
Table3-
num |info
----------
1 |aaaaa
6 |ffff
2 |bbbb
このようなシナリオでは、レコードは表示さ6 |ffff
れません。
望ましい出力の更新
私が得たい結果は、
Result-
num |info num |info num |info
----------- ----------- ----------
1 |aaaaa 1 |aaaaa 1 |aaaaa
2 |bbbb NULL|NULL 2 |bbbb
3 |ccc 3 |ccc NULL|NULL
3 |ccc 3 |ccc NULL|NULL
4 |dddd 4 |dddd NULL|NULL
NULL|NULL 6 |ffff 6 |ffff