2013-11-23 38 views
1

我想在三個表格上執行外部連接。使用SQL外部連接3個表格

Select longitue, latitude, name from 
UserEntry 
Geo 
TwTbl 
where UserEntry.id = TwTbl.user_id 
and Geo.id = TwTbl.Geo_count 

但是這隻導致在所有3個表格中常見的情況。我需要做一個外連接,但不知道使用3個表的語法。我需要將所有內容都保存在UserEntry表中。有人可以幫幫我嗎。

回答

1

我認爲你正在尋找一個完整的外連接。事情是這樣的:

SELECT longitue, latitude, name from 
UserEntry 
FULL OUTER JOIN TwTbl 
ON TwTbl.user_id = UserEntry.id 
FULL OUTER JOIN Geo 
ON Geo.id = twtbl.geo_count 
+0

我忘了提到表格模式。 UserEntry中的ID引用TwTbl中的user_id和 地理引用中的ID參考TwTbl中的geo_count 但UserEntry和Geo Table之間沒有公共密鑰,那麼連接仍然是相同的。請告訴我。謝謝。 –

2

左連接

Select longitue, latitude, name 
from UserEntry LEFT JOIN TwTbl 
ON UserEntry.id = TwTbl.user_id 
LEFT JOIN Geo 
ON Geo.id = TwTbl.Geo_count 

這會給你所有的UserEntry行和匹配行的UserEntry之間,然後加入該結果集TwTbl,給你所有的來自前兩個表結果集的行連接和來自TwTbl的匹配行。
全部加入

Select longitue, latitude, name 
from UserEntry FULL JOIN TwTbl 
ON UserEntry.id = TwTbl.user_id 
FULL JOIN Geo 
ON Geo.id = TwTbl.Geo_count 

這種加盟會給你所有的所有三個表的匹配和不匹配的行的行。
右連接

Select longitue, latitude, name 
from UserEntry RIGHT JOIN TwTbl 
ON UserEntry.id = TwTbl.user_id 
RIGHT JOIN Geo 
ON Geo.id = TwTbl.Geo_count 

這將會給你匹配從UserEntry錶行和所有從地理錶行,然後加入這一結果集TwTbl會給你從結果集中的所有行1日的加入,所有來自TwTbl的行

+0

下面是表格模式。 UserEntry中的ID引用TwTbl中的user_id和 地理引用中的ID參考TwTbl中的geo_count 但UserEntry和Geo Table之間沒有公共密鑰,那麼連接仍然是相同的。請告訴我。謝謝 –

+0

@nasiajaffri現在就來看看我已經更新了我的答案,並且如果有幫助,請接受答案,謝謝。 –

+1

謝謝,我接受了答案。 –