全部产品
云市场

如何使用 not in,实现上万级别数据量的子查询?

更新时间:2019-06-19 09:53:16

Q:MaxCompute SQL 中,使用 not in 后面接子查询,子查询返回的结果是上万级别的数据量,但阿里云中 in 和 not in 后面的子查询返回的是分区时,返回的数量上限为 1000。在 not in 必须使用的情况下,该如何实现此查询?

A:您可以使用left outer join实现此查询。

  1. select * from a where ads not in (select ds from b)
  2. 改成如下语句:
  3. select a.* from a left outer join (select distinct ds from b) bb on a.ds=bb.ds where bb.ds is null;