Оракул
Оракул
(62092)
3 года назад
Запутанное у вас условие конечно, похоже на какое-то некорректное хотение, в нормальных бд такое редко встретишь
Вам нужно отобрать данные по условиям для нескольких строк, для этого сджойните продукты на продукты и получите по условию двух полей
select p1.* from product p1
join product p2 on p1.product_id = p2.product_id
where p1.attr_id = 1 and p2.attr_id = 2;
Надо выбрать товар (product_id) у которого фильтр attr_id
Одновременно 1 и 2.
То есть товар с id=3 не подойдет, тк у него только 1 и нет 2
Когда пишу что-то вроде...
SELECT `product`.* FROM `product` WHERE category_id IN (1) AND id IN
(
SELECT product_id FROM attribute_product WHERE attr_id IN (1,2)
)
... У меня выбираются все 1 и 2, не учитывая мое условие
На фотке я показал, как хотелось бы
.
.
Прошу помощи