2012年11月22日 星期四

Hive Left Join

http://myeyeofjava.iteye.com/blog/1703815

SELECT a.val, b.val FROM a LEFT OUTER JOIN b ON (a.key=b.key)

對應所有 a 表中的記錄都有一條記錄輸出。輸出的結果應該是 a.val, b.val,當 a.key=b.key 時,而當 b.key 中找不到等值的 a.key 記錄時也會輸出 a.val, NULL。「FROM a LEFT OUTER JOIN b」這句一定要寫在同一行——意思是 a 表在 b 表的左邊,所以 a 表中的所有記錄都被保留了;「a RIGHT OUTER JOIN b」會保留所有 b 表的記錄。OUTER JOIN 語義應該是遵循標准 SQL spec的。

http://rapapa.net/wp/wp-content/uploads/2012/06/Visual_SQL_JOINS_V2.png