我試圖想到一個邏輯來實現這個mysql
查詢,但我想不出任何東西或在互聯網上找到任何東西。我的任務是Join
兩個或多個表,並返回它的匹配字段。但是如果有三個表匹配兩個表上的行也必須顯示。說我有這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
我想加入這三個表,得到的結果如下,
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
我有這個疑問這隻能說明這是對所有三個表。
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
但是我想要的是顯示即使值出現在兩個表中。
非常感謝。如果這是解決它會在指着我在正確的方向是有很大的幫助:)再次感謝
表結構UPDATE
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
犯規得到displayd
,
前所需的輸出UPDATE
我想得到的結果是,
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
你只想顯示從中'num'包含在任表2表3或表1的記錄來? –
@JohnWoo @JohnWoo謝謝你的回覆..我需要每張桌子都考慮到,如果可能的話:) –
查看下面的答案,它是根據你的例子和期望的結果 –