我有两个表。当右表中有很多匹配行时左连接
Product(id, name)
LineItem(id, product_id, order_id)
Order(id, state)
订单可以有很多产品。一个产品可以同时属于多个订单。
我想选择没有特定状态(即1,2)的订单的产品。
我的查询是
SELECT products.id, products.price
FROM "products"
LEFT OUTER JOIN line_items ON line_items.product_id = products.id
LEFT OUTER JOIN orders ON orders.id = line_items.order_id AND orders.status IN (1, 2)
WHERE (products.price > 0) AND (orders.id IS NULL) AND "products"."id" = $1
GROUP BY products.id, products.price [["id", 11]]
11是一个产品,是不应该出现的结果的ID,但它确实。
发布您的查询。将有助于指导您 –
我删除了无关的数据库标记。请用您真正使用的数据库标记问题。 –
Jim我发布了它。请查看 –