select 订单详情状态完整的所有订单

select all orders where order details state is complete

orders:
id state

order_details:
id order_id state

order has_many order_details

我需要select所有订单及其订单详细信息状态是否完整? 我的意思是,如果一个订单有 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) 
  )