外部应用于 Power Query M

Outer apply in Power Query M

我在 Excel

中有一个 table
Id
-----
1
2
3

我还有一个函数 F,它接受 Id 和 returns 一个 table。我需要制作类似

的东西
SELECT * FROM ExcelTable as et OUTER APPLY F(et.Id)

关于如何在没有循环的情况下在 Power Query M 中制作它,您有什么想法吗?

似乎在 Power Query M 中执行此操作的自然方法是使用 AddColumn 和 ExpandColumn。 这里相当于

SELECT * 
FROM ExcelTable e 
OUTER APPLY (
            SELECT * 
            FROM SomeOtherTbl s 
            WHERE s.SomeOtherId = e.Id
            )

在Power查询M中是

let
  SomeOtherTbl = Table.FromRecords({[SomeOtherId = 0, Field1 = "Hate MS docs"],
                                    [SomeOtherId = 1, Field1 = "samples formatting"]}),
  ExcelTable = Table.FromRecords({[Id = 0],
                                  [Id = 1]}),


  F = (id) => Table.SelectRows(SomeOtherTbl, each [SomeOtherId] = id),
  OuterApplyStep1 = Table.AddColumn(ExcelTable, "FFFF", each F([Id])),
  ColumnNames = Table.Schema(OuterApplyStep1{0}[FFFF])[Name],
  OuterApplyStep2 = Table.ExpandTableColumn(OuterApplyStep1, "FFFF", ColumnNames, ColumnNames)
in
  OuterApplyStep2

幸好我不关心第二个 table 的列名。不好的是,如果没有匹配,代码就会失败 - Table.Schema falls.