比较一个表中的多个列与另一个表中的多个列

时间:2014-04-10 15:49:50

标签: sql hive

table1上周有与用户相关的新网址列表

table2根据历史记录为每个用户提供 已验证的网址 列表。

我想查看新网址是否与任何 已验证的网址 相匹配,我无法继续在 hive / sql 中。

table1

userids   new_urls
 18       www.google.com/in
 16       www.yahoo.com/ky
 16       www.hotmail.com

table2

userids   verified_urls
 18       www.map.com
 18       www.kite.com
 16       www.hotmail.com
 16       www.kayak.com

在这种情况下,只有用户ID 16 且网址 www.hotmail.com 应与table2列匹配。我想知道 userid new_urls table1中的其他两行不匹配。

1 个答案:

答案 0 :(得分:0)

选择userids,new_urls 来自table1 table1.new_urls in(从table2中选择verified_urls)

你应该使用IN(或加入表或使用EXISTS),但IN可能最有意义。只需从一个表中选择所有值,其中值为IN(或NOT IN)另一个表。