2013-03-12 82 views
8

我期待創建一個HIVE SQL查詢來查找表1中不存在的所有值。我明白我需要使用連接但我無法弄清楚如何實現它的這種情況... ...HIVE檢查表1中的數據,這在表2中不存在

謝謝, 詹姆斯

例如:

Table1 

url     number 
xe.com    5 
google.com   2 
ebay.co.uk   6 

Table2 

url     visits 
facebook.com   8 
google.com   4 
ebay.co.uk   15 

因此,例如查詢應返回從表1這些都是值出現在表2中,即

url     number   visits 
google.com   2    4 
ebay.co.uk   6    15 
+0

你將不得不包括詳細信息,如果你想有一個合適的解決辦法。表格的模式以及它們如何連接在一起將是一個好的開始。 – 2013-03-12 11:06:11

+0

對不起,我認爲這個問題很簡單,它不需要關於數據模式的任何信息。我已編輯的帖子,幷包括信息:) – user2160581 2013-03-12 11:12:23

+0

基本上我正在尋找一種方法來做一個反加入... – user2160581 2013-03-12 12:18:35

回答

14

無論是否存在匹配,LEFT JOIN都將返回來自Table1的所有行。在存在不匹配從Table2列的值將爲NULL的情況下 - 這是你想要的行:

SELECT Table1.url, Table1.number 
FROM Table1 
LEFT OUTER JOIN Table2 ON Table1.url = Table2.url 
WHERE Table2.url IS NULL 
+0

感謝您的幫助,但不應該這樣:SELECT Table1.url,Table1.number FROM Table1 LEFT JOIN Table2 ON Table1.url = Table2.url WHERE Table2.url IS NULL – user2160581 2013-03-12 13:20:33

+0

@ user2160581是的,領先於我自己,在輸入時錯過了'FROM'行;現在修好。 – 2013-03-12 13:22:29

+0

和我使用它的HIVE的目的應該是左外連接。謝謝 :) – user2160581 2013-03-12 13:25:34

相關問題