外部使用SQL连接3个表

时间:2013-11-23 18:24:45

标签: sql join

我正在尝试在三个表上进行外连接。

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

但是这只导致了所有3个表中的共同点。我需要进行外连接,但在使用3个表时不知道语法。我需要将所有内容保存在UserEntry表中。有人可以帮助我。

2 个答案:

答案 0 :(得分: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表中的匹配行和Geo Table中的所有行,然后将此结果集连接到TwTbl将为您提供第一个连接的结果集中的所有行以及来自TwTbl的所有行

答案 1 :(得分: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