Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток, All !
помогите составить запрос к таблице
+----+------------+----------+ | id | product_id | param_id | +----+------------+----------+ | 1 | 1 | 10 | | 2 | 1 | 11 | | 3 | 1 | 12 | | 4 | 1 | 5 | | 5 | 2 | 10 | | 6 | 2 | 11 | | 7 | 2 | 13 | | 8 | 2 | 15 | | 9 | 3 | 10 | | 10 | 3 | 11 | +----+------------+----------+
нужно получить уникальные значения product_id соответствующий выборке
Неактивен
решение было найдено
Неактивен
Не пойму к чему тут count и group???
SELECT DISTINCT product_id
FROM tbl_name
WHERE param_id IN (10,11,15)
Неактивен
michail написал:
решение было найдено
SELECT t.product_id
FROM t
WHERE t.param_id IN(10, 11, 15)
GROUP BY t.product_id
HAVING COUNT(*) = 3
при таком запросе всегда будет temporary table + filesort
от filesort можно избавиться добавив ORDER BY NULL
лучше джойнить таблицу необходимое кол-во раз
Неактивен
nikolajtesla написал:
Не пойму к чему тут count и group???
SELECT DISTINCT product_id
FROM tbl_name
WHERE param_id IN (10,11,15)
Видимо, потому что нужно выбрать продукт, у которого есть три параметра с param_id 10, 11 и 15.
А в Вашем случае получается, что будут выбраны продукты, у которых есть по крайней мере один из выше указанных параметров.
Неактивен