2

我对 moor 的依赖:

  moor_flutter: ^2.1.1
  moor_ffi: ^0.4.0

我有桌子:

  • netPoint = 有关 netPoint 的信息
  • netPointNetPoint = 网点的链接

我想要所有与 "PARENTS_ID" 匹配的 netPoints。以下。

我的问题是我无法在 Where 条件下访问 netPointNetPoint。

select(netPoint)
    ..where((t) => t.TYPE.equals(type))
    ..join(
        [
          innerJoin(netPointNetPoint, netPointNetPoint.CHILDREN_ID.equalsExp(netPoint.ID)),
          innerJoin(netPointNetPoint, netPointNetPoint.PARENTS_ID.equals(parentId))
        ]
    )
  ).get();

不幸的是,帮助页面https://moor.simonbinder.eu/docs/advanced-features/joins/没有帮助我。

4

1 回答 1

1

好吧,这些问题已经很老了,但是我遇到了同样的问题,以防万一有人遇到同样的问题。我猜你必须用这样的东西改变表达式:

select(netPoint)
..where((t) => t.TYPE.equals(type))
..where((t) => netPointNetPoint.PARENTS_ID.equals(parentId))
..join(
    [
      innerJoin(netPointNetPoint, netPointNetPoint.CHILDREN_ID.equalsExp(netPoint.ID))
    ]
)).get();

连接的结果将包含您需要的所有列,因此您只需要检查行中的列是否具有所需的值。例如netPointNetPoint.PARENTS_ID.equals(parentId)

于 2020-10-05T22:10:56.610 回答