【发布时间】:2022-01-24 01:16:33
【问题描述】:
orders:
id state
order_details:
id order_id state
order has_many order_details
我需要选择所有订单详情状态是否完整? 我的意思是如果一个订单有 5 个订单详情,那么它的订单详情必须是完整的。
以及如何在 elixir ecto 查询中实现这一点?
【问题讨论】:
-
你能发布一个数据样本+预期结果吗?
orders:
id state
order_details:
id order_id state
order has_many order_details
我需要选择所有订单详情状态是否完整? 我的意思是如果一个订单有 5 个订单详情,那么它的订单详情必须是完整的。
以及如何在 elixir ecto 查询中实现这一点?
【问题讨论】:
如果是标准 SQL,您可以通过以下查询获得所需内容:
select * from orders o
where id in
(
select order_id from order_details od
where state='complete'
group by order_id
having count(1) = (select count(1) from order_details od2 where
od.order_id=od2.order_id)
)
【讨论】: