通过在 SQL 中匹配列值来连接两个表

问题描述 投票:0回答:3

嗨,我一直在尝试通过匹配值连接两个表。

我的第一个表名为位置,其中包含以下列:(国家、州、城市、纬度、经度)

我有第二个名为 twitter 的表,其中包含以下列:(用户、推文、纬度、经度)

我想做的是将位置表连接到 Twitter 表,当纬度和经度匹配时,它将在 Twitter 数据旁边显示相应的国家、州和城市列。

到目前为止我已经尝试过但没有运气。它所做的就是将每个城市添加到多行的每条推文中。

select * from twitter
join location 
on twitter.latitude = location.latitude
and twitter.longitude = location.longitude

请帮忙!

sql hadoop hive
3个回答
2
投票

由于我们可能没有每个纬度/经度的位置,因此我们使用

LEFT JOIN
:

select t.User
    ,t.Tweet
    ,t.Latitude
    ,t.Longitude
    ,l.Country
    ,l.State
    ,l.City
from twitter t
left join location l on t.latitude = l.latitude
    and t.longitude = l.longitude

0
投票

使用左连接。它会给你所有的结果。

select * from twitter
left join location 
on twitter.latitude = location.latitude
and twitter.longitude = location.longitude

-1
投票

使用 join 的简化方法 - 但为了代码清晰而使用表名别名等(t = twitter、l=location 等)

select * from twitter t
inner join location l
on t.latitude = l.latitude
WHERE t.longitude = l.longitude
© www.soinside.com 2019 - 2024. All rights reserved.