|
|
|
| есть таблица параметров товара
id | tovar_id | param_id
, делаем выборку по параметрам(param_id=1) и получаем tovar_id найденых товаров, потом делаем ещё одну выборку(param_id=2) и получаем tovar_id найденых товаров, как создать запрос чтоб найти совпадение tovar_id (которые есть в результате выполненияя первого и второго запроса)?
Можно выполнить всё одним запросом? | |
|
|
|
|
|
|
|
для: _robot
(20.05.2011 в 11:14)
| | Можно воспользоваться запросом вида
SELECT * FROM tbl
WHERE param_id IN (1, 2);
|
| |
|
|
|
|
|
|
|
для: cheops
(20.05.2011 в 11:17)
| | А если поиск не точно по param_id а по условию меньше или больше
param_id >= 2
Да и парметров для одного товара может быть несколько. | |
|
|
|
|
|
|
|
для: _Robot
(20.05.2011 в 11:32)
| | В этом случае можно применить составное условие
SELECT * FROM tbl
WHERE param_id >= 1 AND param_id <= 2;
| или конструкцию BETWEEN
SELECT * FROM tbl
WHERE param_id BETWEEN 1 AND 2;
|
| |
|
|
|
|
|
|
|
для: cheops
(20.05.2011 в 12:05)
| | Быстрей сработает я думаю здесь конструкция BETWEEN | |
|
|
|
|
|
|
|
для: Ильдар
(20.05.2011 в 22:10)
| | Проверять нужно, мне кажется схема запроса, в случае MySQL, будет совершенно одинакова для обоих запросов, всеж так и у MySQL довольно сильный оптимизатор, он и более сложные запросы распознает. | |
|
|
|