Informix 双重嵌套的 MULTISET 保持为空

Informix doubly nested MULTISET remains empty

鉴于此架构:

create table a (id int);
create table b (id int, a_id int, c_id int);
create table c (id int);

insert into a values (1);
insert into a values (2);
insert into b values (1, 1, 1);
insert into b values (2, 1, 1);
insert into b values (3, 2, 4);
insert into b values (4, 2, 2);
insert into c values (1);
insert into c values (2);
insert into c values (3);
insert into c values (4);

我试过运行这样的查询:

select
  a.id,
  multiset(
    select
      b.id,
      multiset(
        select c.id
        from c
        where c.id = b.c_id
      )
    from b
    where b.a_id = a.id
  ) m
from a
order by a.id

但输出表明最内嵌套的 MULTISET 查询不起作用。输出是:

id  1
m   MULTISET{ROW(1,MULTISET{}),ROW(2,MULTISET{})}

id  2
m   MULTISET{ROW(3,MULTISET{}),ROW(4,MULTISET{})}

这是已知限制还是错误?我该如何解决这个限制?我正在使用 IBM Informix 动态服务器版本 14.10.FC5DE

,似乎有一个 ORDER BY 相关的错误。删除 ORDER BY 子句:

select
  a.id,
  multiset(
    select
      b.id,
      multiset(
        select c.id
        from c
        where c.id = b.c_id
      )
    from b
    where b.a_id = a.id
  ) m
from a

现在的输出是预期的:

id  1
m   MULTISET{ROW(1,MULTISET{ROW(1)}),ROW(2,MULTISET{ROW(1)})}

id  2
m   MULTISET{ROW(3,MULTISET{ROW(4)}),ROW(4,MULTISET{ROW(2)})}

看来绝对是 Informix 中的错误。