hive中的 left semi join

LEFT SEMI JOIN 是 IN/EXISTS 子查詢的一種更高效的實現code

Hive 當前沒有實現 IN/EXISTS 子查詢,因此你能夠用 LEFT SEMI JOIN 重寫你的子查詢語句。LEFT SEMI JOIN 的限制是, JOIN 子句中右邊的表只能在 查詢

ON 子句中設置過濾條件,在 WHERE 子句、SELECT 子句或其餘地方過濾都不行。co

  SELECT a.key, a.value

  FROM a

  WHERE a.key in

   (SELECT b.key

    FROM B);

能夠被重寫爲: 

  SELECT a.key, a.val

   FROM a LEFT SEMI JOIN b on (a.key = b.key)
相關文章
相關標籤/搜索