我正在尝试在三个表上进行外连接。
Select longitue, latitude, name from
UserEntry
Geo
TwTbl
where UserEntry.id = TwTbl.user_id
and Geo.id = TwTbl.Geo_count
但是这只导致了所有3个表中的共同点。我需要进行外连接,但在使用3个表时不知道语法。我需要将所有内容保存在UserEntry表中。有人可以帮助我。
答案 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