Я пытаюсь решить проблему. Это мой запрос>Mysql - WHERE несколько значений с тем же идентификатором
SELECT p.*
FROM `ps_product` p
LEFT JOIN `ps_product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.id_shop = 1)
LEFT JOIN `ps_product_attribute` pa ON (pa.`id_product` = p.`id_product`)
LEFT JOIN `ps_product_attribute_combination` pac ON (pac.`id_product_attribute` = pa.`id_product_attribute`)
WHERE pl.`id_lang` = 2
AND p.`id_category_default` = 25
AND p.`active` = 1
AND pac.`id_attribute` = 1714
AND pac.`id_attribute` = 1736
AND pac.`id_attribute` = 1737
AND pac.`id_attribute` = 216
ORDER BY p.`price` ASC
Моя проблема заключается в выборе только продуктов, содержащих все 4 id_attributes.
Таблица ps_product_attribute_combination содержит два столбца. id_product_attribute и id_attribute. Например>
id_attribute/id_product_attribute
1714 120
1736 120
1737 120
216 120
Я надеюсь объяснение :) успешное Спасибо!
Ну это не может быть 1714 ** AND ** 1736, используйте IN: 'AND pac.id_attribute IN (1714, 1736, 1737, 216)' –
IN не работает. Он должен иметь все 4. IN будет работать, даже если он не содержит всех 4. – Wr1t3r