Помогите с выборкой из бд php mysql

Nubcoder32

Доброго времени суток. Нужна помощь с запросом mySql
Есть таблица:
Screenshot_13.png

Нужно сделать выборку: Найти variation_id, у которого product_id 3909, есть attr_id 10153 и attr_id 4962

 

Drunkenmunky

В том приложении, из которого вы добавили сриншот, есть вкладка поиск.
Заполните необходимые поля для поиска и нажмите кнопку.
Чуть выше результатов поиска будет выведен использованный SQL

 

Nubcoder32

Спасибо за ответ, но я не пойму как правильно заполнить поиск

 

Drunkenmunky

Если поиск по конкретному значению, то в поле выбора укажите “=”
Если только часть значения, то “%LIKE%”

 

Nubcoder32

Мне нужно такое

Код (Text):
  1. SELECT * FROM `attributevariation` WHERE `product_id` = 3909 AND `attr_id` =
  2. 9567 AND `attr_id` = 4962

Но вернет пустое значение

 

Drunkenmunky

Значит что-то не так с запросом. Или типом данных в таблице.
Попробуйте заключить искомое в одинарные кавычки.
Во вкладке SQL

 

don.bidon

на

Код (Text):
  1. AND `attr_id` IN (9567, 4962)

замените и подумайте, что Вы написали.

 

Nubcoder32

Спасибо за ответ, это я пытался так описать что мне нужно.

Код (Text):
  1. SELECT variation_id FROM attributevariation WHERE product_id=’3909′ AND attr_id IN(‘9567′,’5112’)

Вернет все, где встречаются эти параметры, а мне нужно получить variation_id, к которому есть все заданные атрибуты, а такой запрос возвращает если есть хотя бы один из перечисленных атрибутов

 

Drunkenmunky

Код (Text):
  1. ….WHERE `product_id` = 3909  AND `attr_id` IN (10153, 4962)

А, ответили уже.

 

Sail

Тут ещё группиновка нужна и проверка на количество строк в выборке.
Например:

Код (SQL):
  1. SELECT variation_id FROM attributevariation WHERE product_id=‘3909’ AND attr_id IN(‘9567’,‘5112’) GROUP BY variant_id HAVING COUNT(*) = 2;
 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *