The following query seems to work perfectly:

SELECT
    "houses"."id",
    "houses"."name",
    "houses"."address",
    ARRAY(
        SELECT
            "users"."id",
            "users"."name"
        FROM
            "users"
        WHERE
            "users"."house_id" = "houses"."id"
    ) AS "users"
FROM
    "houses";

However, if I modify the inner ARRAY() query for "users" to be:

SELECT
    "users"."id",
    "users"."name",
    ARRAY(
        SELECT
            "todos"."id",
            "todos"."description"
        FROM
            "todos"
        WHERE
            "todos"."user_id" = "users"."id"
    ) AS "todos"
FROM
    "users"

===================================================

Unable to implement EnumerableNestedLoopJoin(condition=[true],
joinType=[inner]): rowcount = 22500.0, cumulative cost = {227855.0 rows,
18242.0 cpu, 0.0 io}, id = 12787
  EnumerableTableScan(table=[[example, houses]]): rowcount = 100.0,
cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 12718
  EnumerableCollect(field=[x]): rowcount = 225.0, cumulative cost = {2755.0
rows, 18141.0 cpu, 0.0 io}, id = 12785
    EnumerableCalc(expr#0..3=[{inputs}], proj#0..1=[{exprs}], todos=[$t3]):
rowcount = 225.0, cumulative cost = {2530.0 rows, 17916.0 cpu, 0.0 io}, id
= 12793
      EnumerableCorrelate(correlation=[$cor1], joinType=[inner],
requiredColumns=[{0}]): rowcount = 225.0, cumulative cost = {2305.0 rows,
16341.0 cpu, 0.0 io}, id = 12781
        EnumerableCalc(expr#0..2=[{inputs}], expr#3=[$cor0], expr#4=[$t3.id],
expr#5=[=($t2, $t4)], proj#0..2=[{exprs}], $condition=[$t5]): rowcount =
15.0, cumulative cost = {115.0 rows, 1101.0 cpu, 0.0 io}, id = 12789
          EnumerableTableScan(table=[[example, users]]): rowcount = 100.0,
cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 12722
        EnumerableCollect(field=[x]): rowcount = 15.0, cumulative cost =
{130.0 rows, 1016.0 cpu, 0.0 io}, id = 12779
          EnumerableCalc(expr#0..2=[{inputs}], expr#3=[$cor1], expr#4=[$
t3.id], expr#5=[=($t1, $t4)], id=[$t0], description=[$t2],
$condition=[$t5]): rowcount = 15.0, cumulative cost = {115.0 rows, 1001.0
cpu, 0.0 io}, id = 12797
            EnumerableTableScan(table=[[example, todos]]): rowcount =
100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 12728
(state=,code=0)

Reply via email to