Выборка из БД

snaimw

Новичок
Добрый день, прошу помочь решить одну задачку. Делаю каталог товаров, не получается выборка по условию
Таблица товаров - catalog
- id
- scu
- category_id
- name
Таблица характеристик - property
- id
- name
Таблица значения характеристик товаров - property_value
- id
- property_id - id характеристики
- catalog_id - id товара
- value - значение
Нужно получить товары характеристики которых соответствуют условию

например
PHP:
SELECT * FROM catalog AS c LEFT JOIN property_value AS pv ON (c.id= pv.catalog_id) WHERE property_id=1 AND VALUE = 2
отфильтровать по 1 характеристике получается, а как отфильтровать по нескольким?
PHP:
SELECT * FROM catalog AS c 
LEFT JOIN property_value AS pv ON (c.id= pv.catalog_id) 
WHERE (property_id=1 AND VALUE = 2) 
AND (property_id=2 AND VALUE = 5) 
AND (property_id=3 AND VALUE = 4)
Так не работает
 

С.

Продвинутый новичок
Разницу между И и ИЛИ понимаешь?
Как property_id одновременно может быть равно 1 И 2 И 3?
 

weregod

unserializer
snaimw, попробуйте сформулировать условие
PHP:
WHERE (property_id=1 AND VALUE = 2) 
AND (property_id=2 AND VALUE = 5) 
AND (property_id=3 AND VALUE = 4)
по-русски.
 

Gas

может по одной?
ну классический вопрос, раз в месяц задаётся

WHERE (property_id=1 AND VALUE = 2) OR (property_id=2 AND VALUE = 5) OR (property_id=3 AND VALUE = 4) group by c.id having count(*) = 3
 
Сверху