我在下面的 ecto 中有这个查询:
query =
from(tx in Treatment,
join: ax in assoc(tx, :ax_sheet),
join: ev in assoc(ax, :visit),
join: evr in assoc(ev, :visit_revisions),
where: is_nil(tx.visit_revision_id),
where: not is_nil(ev.current_revision_id),
select: %{
id: tx.id,
visit_revision_id: coalesce(ev.current_revision_id, subquery(
from vr in VisitRevision,
where: vr.visit_id == ^ev.id and vr.inserted_at <= ^tx.marked_at,
order_by: [desc: vr.inserted_at],
limit: 1,
select: vr.id
))
}
)
我遇到一个问题,在下面这一行出现以下错误:
where: vr.visit_id == ^ev.id and vr.inserted_at <= ^tx.marked_at,
undefined variable ev
undefined variable tx
我的问题很简单。我该如何解决这个问题?我读到无法subquery
检索我之前在外部查询中定义的内容,那么我如何才能简单地传入我需要的 ID?我是 elixir 的新手,希望这是一个容易解决的问题之一。谢谢。
只需将您需要的内容分配给一些专用变量,然后使用新变量即可。例如
您可以使用 为父根表和父连接表命名,并使用
as: ...
访问它们。parent_as:
这应该有效: