为什么我的 Elixir Ecto 查询中出现 "unsupported :except_all in keyword query expression"?
Why am I getting "unsupported :except_all in keyword query expression" in my Elixir Ecto query?
这个 Ecto 查询有效:
bid_players = from a in Auction,
where: a.id == 1,
join: bids in assoc(a, :bids),
join: player in assoc(bids, :player),
select: player.id
并且此查询有效:
players = from player in Player,
where: player.year_range == ^a.year_range,
select: player.id
但我不知道如何获得非竞价玩家。当我尝试这个时:
not_bid_players = from player in Player,
where: player.year_range == ^a.year_range,
select: player.id,
except_all: ^bid_players
...我得到:
** (Ecto.Query.CompileError) unsupported :except_all in keyword query expression
(ecto) expanding macro: Ecto.Query.from/2
iex:35: (file)
我想 except_all
(参见 https://hexdocs.pm/ecto/Ecto.Query.html#except_all/2)有些地方我不明白。
except_all
已添加到 Ecto 3 中。
phoenix_ecto 需要 4.0 才能使用 Ecto 3+,看来你需要升级了。
这个 Ecto 查询有效:
bid_players = from a in Auction,
where: a.id == 1,
join: bids in assoc(a, :bids),
join: player in assoc(bids, :player),
select: player.id
并且此查询有效:
players = from player in Player,
where: player.year_range == ^a.year_range,
select: player.id
但我不知道如何获得非竞价玩家。当我尝试这个时:
not_bid_players = from player in Player,
where: player.year_range == ^a.year_range,
select: player.id,
except_all: ^bid_players
...我得到:
** (Ecto.Query.CompileError) unsupported :except_all in keyword query expression
(ecto) expanding macro: Ecto.Query.from/2
iex:35: (file)
我想 except_all
(参见 https://hexdocs.pm/ecto/Ecto.Query.html#except_all/2)有些地方我不明白。
except_all
已添加到 Ecto 3 中。
phoenix_ecto 需要 4.0 才能使用 Ecto 3+,看来你需要升级了。