Как выбрать несколько значений ключа из одной таблицы с одним запросом?

0

это пример таблицы свойств продукта

product_id  property_id property_value
5           1           white
5           2           50
5           3           50
5           4           55
5           5           mm
6           8           cm

Я хочу динамически фильтровать свои продукты. например:

select property_id 1 and property_value white
AND
select property_id 2 and property_value 50
AND
select property_id 4 and property_value 55
AND
etc ...

Я могу сделать динамический запрос из базового запроса. когда я использую все условия вместе, никакая запись не сопоставляется, потому что все условия оператора AND. Каков наилучший запрос? спасибо за ваши ответы.

  • 0
    Как одна строка может соответствовать всем этим критериям?
  • 0
    ни одной строки, я хочу, чтобы все строки соответствовали разделенным условиям. (property_id property_value)
Теги:
codeigniter

1 ответ

1

Похоже, вы используете неправильное ключевое слово. Используйте OR вместо AND между наборами критериев:

SELECT DISTINCT product_id

FROM product_properties

WHERE
(property_id = 1 and property_value = 'white')
OR
(property_id = 2 and property_value = '50')
OR
(property_id = 4 and property_value = '55')
OR
etc ...

Вы можете использовать DISTINCT если вы хотите, чтобы один из каждого product_id соответствовал различным критериям или оставил его, чтобы получить один для каждой строки, которая соответствует.

  • 0
    потому что я хочу все продукты с этими свойствами.
  • 1
    Вероятно, нужно property_id=1 and property_value='white' и так далее.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню