IN
条項にすべてのオプションがある製品が欲しいです。ここに私のSQLがあります:
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;
IN
条項にすべてのオプションがある製品が欲しいです。ここに私のSQLがあります:
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;
これらのオプションをすべて含む結果を返したい場合は、次を使用できます。
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 を参照してください