2013-03-12 11 views
8

Tablo 2'de Tablo 1'de bulunmayan tüm değerleri bulmak için HIVE SQL sorgusu oluşturmak istiyorum. Birleştirme kullanmam gerektiğini anlıyorumHIVE, tablo 2'de bulunmayan tablo 1'deki veriyi kontrol edin

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 

Yani örneğin sorgu olan Table1 gelen tüm değerleri dönmelidir: ancak ... Bu durum için

Teşekkür, James örneğin

nasıl uygulanacağı konusu bilemiyorum Tablo 2'de mevcut, yani

+0

: - Table2 sütunlarından değeri NULL olacak bir eşleşme olmadığı durumda bu istediğiniz satırlar vardır. Tabloların şeması ve nasıl birbirine bağlandıkları iyi bir başlangıç ​​olacaktır. –

+0

Maalesef, sorunun veri şemasıyla ilgili herhangi bir bilgi gerektirmediği kadar basit olduğunu varsaydım. Ben yazı düzenlenmiş ve bilgi dahil :) – user2160581

+0

Temelde bir anti birleştirme yapmak için bir yol arıyorum ... – user2160581

cevap

14

Bir SOL JOIN, bir eşleşme olup olmamasına bakılmaksızın tüm satırları Table1'dan döndürecektir. Eğer uygun bir cevap istiyorsanız, daha fazla bilgi eklemek zorunda olacak

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

basit birleştirme olduğunu Yardım için teşekkürler, ama bu olmamalı: SELECT Table1.url, Table1.number Tablo1 LEFT JOIN Table2 ON Tablo1.url = Tablo2.url NEREDE Tablo2.url NULL – user2160581

+0

@ user2160581 Yep, kendimden daha ileride ve yazarken "FROM" satırını kaçırdı; şimdi düzeltildi. –

+0

ve kullanıyorum HIVE amaçları için SOL DIŞ JOIN olmalıdır. TEŞEKKÜRLER :) – user2160581