2013-03-12 6 views
8

Ich suche eine HIVE SQL-Abfrage zu finden, alle Werte aus Tabelle 1, die nicht in Tabelle 2 vorhanden sind. Ich verstehe, dass ich eine Verknüpfung verwenden muss aber ich kann nicht herausfinden, wie es für diese Situation zu implementieren ...HIVE-Prüfung für Daten aus Tabelle 1, die in Tabelle 2 fehlt

Danke, James

zum Beispiel:

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 

So zum Beispiel der Abfrage soll alle Werte von Tabelle 1 zurück, die sind in Tabelle 2, dh

+0

Sie werden mehr Informationen haben, aufzunehmen, wenn Sie eine passende Antwort wollen. Das Schema der Tabellen und ihre Verknüpfung wäre ein guter Anfang. –

+0

Tut mir leid, ich nahm an, die Frage war einfach genug, dass es keine Informationen über das Datenschema benötigt. Ich habe den Beitrag bearbeitet und die Informationen enthalten :) – user2160581

+0

Grundsätzlich bin ich auf der Suche nach einer Möglichkeit, eine Anti-Join ... – user2160581

Antwort

14

Ein LINKER JOIN gibt alle Zeilen von Table1 zurück, unabhängig davon, ob eine Übereinstimmung vorhanden ist oder nicht. Im Fall, dass es keine Übereinstimmung gibt die Spalten von Table2 den Wert haben NULL - das sind die Zeilen, die Sie wollen:

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

Danke für die Hilfe, aber sollte dies nicht sein: SELECT Table1.url, Table1.number FROM Table1 LINKE VERBINDUNG Tabelle2 ON Tabelle1.url = Tabelle2.url WHERE Tabelle2.url IST NULL – user2160581

+0

@ user2160581 Ja, ich bin mir selbst voraus und verpasse die 'FROM'-Zeile beim Eintippen; jetzt behoben. –

+0

und für die Zwecke von HIVE, die ich benutze, sollte es LINKS OUTER JOIN sein. VIELEN DANK :) – user2160581

Verwandte Themen