MaxCompute支持SEMI JOIN(半连接)。SEMI JOIN中,右表只用于过滤左表的数据而不出现在结果集中。支持LEFT SEMI JOIN和LEFT ANTI JOIN两种语法。

LEFT SEMI JOIN

join条件成立时,返回左表中的数据。如果mytable1中某行的idmytable2的所有id中出现过,则此行保留在结果集中。

示例如下。
SELECT * from mytable1 a LEFT SEMI JOIN mytable2 b on a.id=b.id;

只会返回mytable1中的数据,只要mytable1idmytable2id中出现。

LEFT ANTI JOIN

join条件不成立时,返回左表中的数据。如果mytable1中某行的idmytable2的所有id中没有出现过,则此行保留在结果集中。

示例如下。
SELECT * from mytable1 a LEFT ANTI JOIN mytable2 b on a.id=b.id;

只会返回mytable1中的数据,只要mytable1idmytable2id没有出现。