我有兩個表。當右表中有很多匹配行時左連接
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我發佈了它。請查看 –