2012-06-04 40 views
7

Làm thế nào để làm một TRỪ khoản (như SQL) trong Hive QLHive QL Trừ khoản

Tôi có 2 bảng, và mỗi bảng là một cột id duy nhất, tôi muốn tìm danh sách các id mà chỉ trong bảng 1 nhưng không có trong bảng 2

bảng 1 táo cam lê

bảng 2 táo cam

trong SQL bạn có thể thực hiện một mệnh đề EXCEPT (http://en.wikipedia.org/wiki/Set_operations_%28SQL%29) nhưng bạn không thể làm điều đó trong Hive QL

Trả lời

16

Tôi không nghĩ rằng có bất kỳ cách tích hợp nào làm điều này nhưng một LEFT OUTER JOIN nên làm các trick.

này sẽ chọn tất cả Ids từ table1 rằng làm không tồn tại trong table2:

SELECT t1.id FROM table1 t1 LEFT OUTER JOIN table2 t2 ON (t1.id=t2.id) WHERE t2.id IS NULL; 
+0

cảm ơn, mà đã cho tôi những gì tôi muốn – sesquipedalians