Помогите создать запрос

Статус
В этой теме нельзя размещать новые ответы.

Vallium

Профессор
Регистрация
22 Авг 2014
Сообщения
225
Реакции
46
Помогите с запросом - туплю (
Есть база, например tbl1 со структурой
product_id | attribute_id | text

как мне выбрать все product_id у которых связки значений attribute_id=16 с text=2 и одновременно attribute_id=17 с text=3

написал так, но не работает
Для просмотра ссылки Войди или Зарегистрируйся product_id FROM tbl1 WHERE (attribute_id = 16 Для просмотра ссылки Войди или Зарегистрируйся text = '2') Для просмотра ссылки Войди или Зарегистрируйся (attribute_id = 17 Для просмотра ссылки Войди или Зарегистрируйся text = '3')
 
Код:
SELECT product_id FROM tbl1 WHERE (attribute_id = 16 AND text = '2') OR (attribute_id = 17 AND text = '3')
?
 
Надо через OR.
Код:
SELECT product_id FROM tbl1 WHERE (attribute_id = 16 AND text = '2') OR (attribute_id = 17 AND text = '3')

Суть в неверном вопросе, надо так: выбери строку, если в ней есть поля 16 и 2 или если есть 17 и 3
И вот тогда как рази получишь эти 2 строки
 
Надо через OR.
Код:
SELECT product_id FROM tbl1 WHERE (attribute_id = 16 AND text = '2') OR (attribute_id = 17 AND text = '3')

Суть в неверном вопросе, надо так: выбери строку, если в ней есть поля 16 и 2 или если есть 17 и 3
И вот тогда как рази получишь эти 2 строки
Мне как раз нужно И
с или работать не будет:
например если связки (attribute_id = 16 AND text = '2') не будет то все равно выберется строка
 
Последнее редактирование:
всёравно не понятно. опиши нормально условие. из описанного выше, нужно выбирать через OR
 
повторяю:
как мне выбрать product_id у которого обязательно есть связки значений (attribute_id=16 с text=2) И ОДНОВРЕМЕННО (attribute_id=17 с text=3)

решил без доп. таблиц через left join - не очень изящно, но работает
 
Последнее редактирование модератором:
решил без доп. таблиц через left join - не очень изящно, но работает

Не правильно понял запрос, джойн таблицы на саму себя по product_id первое что и мне пришло в голову.
Отредактируй свой предыдущий пост, добавив решение, наверняка кому-то пригодится.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху