我想知道是否有顯示一組匹配或不同數據的方式..喜歡,說我有三個表,匹配列
tbl_1-
ip |isp |infection
----------------------
1 |aaaa |malware
2 |bbbb |malware
3 |cccc |ddos
3 |cccc |trojan
4 |dddd |ddos
tbl_2-
ip |isp |infection
----------------------
1 |aaaa |malware
3 |cccc |ddos
4 |dddd |trojan
5 |eeee |trojan
6 |ffff |other
tbl_3-
ip |isp |infection
----------------------
1 |aaaa |ddos
6 |ffff |
2 |bbbb |other
,並得到如下結果,
Result i need-
ip |isp |infection
----------------------
1 |aaaa |malware
1 |aaaa |ddos
2 |bbbb |malware
2 |bbbb |other
3 |cccc |ddos
3 |cccc |trojan
4 |dddd |ddos
4 |dddd |trojan
5 |eeee |trojan
6 |ffff |other
6 |ffff |
的問題是我不知道該用什麼方法,對於這種情況,我用這個查詢full join
,
SELECT a. * , b. * , c. *
FROM tbl_1 a
LEFT OUTER JOIN tbl_2 b
USING (ip, isp, infection)
LEFT OUTER JOIN tbl_3 c
USING (ip, isp, infection)
UNION
SELECT a. * , b. * , c. *
FROM tbl_2 b
LEFT OUTER JOIN tbl_1 a
USING (ip, isp, infection)
LEFT OUTER JOIN tbl_3 c
USING (ip, isp, infection)
UNION
SELECT a. * , b. * , c. *
FROM tbl_3 c
LEFT OUTER JOIN tbl_1 a
USING (ip, isp, infection)
LEFT OUTER JOIN tbl_2 b
USING (ip, isp, infection)
但這給出結果以不同的方式,
Result i get-
ip |isp |infection ip |isp |infection ip |isp |infection
---------------------- ---------------------- ----------------------
1 |aaaa |malware 1 |aaaa |malware NULL|NULL |NULL
NULL|NULL |NULL NULL|NULL |NULL 1 |aaaa |ddos
2 |bbbb |malware NULL|NULL |NULL NULL|NULL |NULL
NULL|NULL |NULL NULL|NULL |NULL 2 |bbbb |other
3 |cccc |ddos 3 |cccc |ddos NULL|NULL |NULL
3 |cccc |trojan NULL|NULL |NULL NULL|NULL |NULL
4 |dddd |ddos NULL|NULL |NULL NULL|NULL |NULL
NULL|NULL |NULL 4 |dddd |trojan NULL|NULL |NULL
NULL|NULL |NULL 5 |eeee |trojan NULL|NULL |NULL
NULL|NULL |NULL 6 |ffff |other NULL|NULL |NULL
NULL|NULL |NULL NULL|NULL |NULL 6 |ffff |
請幫我在這一個,我想顯示只有3列中的數據..
非常感謝你:)
哦~~ ...:P感謝我指出了......我想一切都變得複雜,正錯過了這些解決方案,非常感謝:) –
不客氣:D –