$f = ($key, $leftList, $rightList) -> {return <|k:$key, v:ListZipAll($leftList, $rightList)|>;}; $a = [ <|key: 1, subkey: 11, value: "111"|>, <|key: 1, subkey: 12, value: "112"|>, <|key: 2, subkey: 21, value: "221"|>, <|key: 2, subkey: 22, value: "222"|>, <|key: 3, subkey: 33, value: "333"|>, ]; $b = [ <|key: 1, subkey: 11, value: "111"|>, <|key: 2, subkey: 22, value: "222"|>, <|key: 3, subkey: 33, value: "333"|>, <|key: 4, subkey: 44, value: "444"|>, <|key: 5, subkey: 55, value: "555"|>, ]; COMBINE AS_TABLE($a) as A PRESORT A.key, A.subkey WITH AS_TABLE($b) as B ON A.key = B.key USING $f(TableRow(), TableRow())