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

时间:2015-12-17 21:49:48

标签: sql hadoop hive

您好我一直试图通过匹配值加入两个表。

我的第一个表名为location的列:(国家,州,城市,纬度,经度)

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

我想要做的是将位置表加入twitter表,当纬度和经度匹配时,它将显示Twitter数据旁边的相应国家,州和城市列。

到目前为止,我试过没有运气。所有这一切都将每个城市添加到多行的每条推文中。

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

请帮助!

3 个答案:

答案 0 :(得分:1)

由于我们可能没有每个纬度/经度的位置,我们使用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

答案 1 :(得分:0)

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

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

答案 2 :(得分:-1)

if (cut is RoundCut) 
    (cut as RoundCut).RoundCutSpecificMethod();
else if (cut is SquareCut) 
    (cut as SquareCut).SquareCutSpecificMethod();