Как сделать запрос к базе данных?

270
13 февраля 2017, 15:00

Есть такая таблица. Как сделать запрос, чтобы выбрать те product_id у которых в value_option_id обязательно присутствие всех трёх значений 9 и 17 и 1, то есть по данной таблице на выходе должно получиться 7 и 5

Answer 1

чтобы остались поля с id 3,4,5 9,10,11 а 12, 13 отсеялись

SELECT *
FROM table
WHERE product_id IN
    (
    SELECT product_id
    FROM table
    GROUP BY product_id
    HAVING 3 = SUM(value_option_id IN (1, 9, 17))
    )
/* WHERE value_option_id IN (1, 9, 17) */

Запрос предполагает, что (product_id, value_option_id) UNIQUE.

выбрать те product_id у которых value_option_id обязательно должны иметь в опциях и 9 и 17 и 1

SELECT product_id
FROM table
GROUP BY product_id
HAVING 3 = SUM(value_option_id IN (1, 9, 17))
Answer 2
select tabl.product_id as product id from tabl where tabl.value_option_id IN (1, 9, 17); 

Желателен индекс по полю value_option_id

READ ALSO
JFreeChart график с разрывом

JFreeChart график с разрывом

Пытаюсь сделать график функции 1/x с помощью библиотеки JFreeChart, он должен выглядеть так

387
Как синхронизировть время на андроиде и сервере?

Как синхронизировть время на андроиде и сервере?

Пишу приложение, которое показывает статус приложения: онлайн или нет

483
как работать с loader при повороте экрана

как работать с loader при повороте экрана

Не могу разобраться как организовать сохранение при повороте экранаПолучаю информацию Json

312
Сервис работает некорректно

Сервис работает некорректно

Получаю время с помощью

333