2013-04-04 51 views
0

我希望產品具有IN子句中的所有選項。這是我的SQL:根據用戶在MYSQL中選擇的選項獲取產品

SELECT 
    p.title, p.price FROM products AS p, product_options AS po 
WHERE 
    p.product_id = po.product_id 
AND 
    po.product_option_id IN (5,1,38,39) 
GROUP BY 
    p.product_id; 
+0

什麼是你目前的問題查詢? – 2013-04-04 11:55:19

+0

@JW他們想要產品上的所有選項。目前將給出'或'。 – Taryn 2013-04-04 11:56:32

回答

2

如果你想返回具有所有這些選項的結果,那麼你可以使用:

SELECT p.title, p.price 
FROM products AS p 
INNER JOIN product_options AS po 
    ON p.product_id = po.product_id 
WHERE po.product_option_id IN (5,1,38,39) 
GROUP BY p.product_id 
HAVING COUNT(DISTINCT po.product_option_id) = 4; 

SQL Fiddle with Demo