2013-03-12 9 views
8

Szukam utworzyć kwerendę HIVE SQL, aby znaleźć wszystkie wartości z tabeli 1, które NIE są obecne w tabeli 2. Rozumiem, że muszę użyć sprzężenia jednak nie mogę dowiedzieć się, jak zaimplementować go w tej sytuacji ...Sprawdzanie HIVE dla danych z tabeli 1, których nie ma w tabeli 2

Dzięki, James

na przykład:

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 

Tak na przykład kwerenda powinna zwrócić wszystkie wartości z tabeli 1., które są obecne w Tabeli 2, tj.

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

Będziesz musiał zawierać więcej informacji, jeśli chcesz odpowiednią odpowiedź. Schemat tabel i sposób ich łączenia będą dobrym początkiem. –

+0

Niestety założyłem, że pytanie było na tyle proste, że nie wymagało żadnych informacji o schemacie danych. Zmieniłem wpis i zawarłem informacje :) – user2160581

+0

Po prostu szukam sposobu na antyłączanie ... – user2160581

Odpowiedz

14

LEFT JOIN zwróci wszystkie wiersze od Table1 niezależnie od tego, czy jest dopasowanie. W przypadku, gdy nie ma meczu kolumny z Table2 będzie miał wartość NULL - Są to wiersze, które chcesz:

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

Dzięki za pomoc, ale nie powinno to być: WYBIERZ Table1.url, Table1.number Z tabeli1 LEWE DOŁĄCZ Table2 ON Table1.url = Table2.url GDZIE Table2.url JEST NULL – user2160581

+0

@ user2160581 Tak, wyprzedziłem siebie i nie zauważyłem linii 'FROM' podczas pisania; Naprawiono teraz. –

+0

i dla potrzeb HIVE, którego używam, powinien być LEFT OUTER DOŁĄCZ. DZIĘKI :) – user2160581

Powiązane problemy