Cramac
Новичок
Всем привет.
Есть магазин opencart
у него есть таблица атрибутов:
в него пишутся данные типо (1 строка 1 значение)
ид товара / ид атрибута / значение
суть вопроса такова:
Нужно выбрать ИД товара в котором 1 или несколько атрибутов равны заданным значениям.
по 1 атрибуту делаю выбор так:
все показывает что надо, а как выбрать товар у которого боле 1 атрибута равны заданным?
выводит и то что с 12 атрибутом и что с 15
Есть магазин opencart
у него есть таблица атрибутов:
PHP:
CREATE TABLE IF NOT EXISTS `product_attribute` (
`product_id` int(11) NOT NULL,
`attribute_id` int(11) NOT NULL,
`language_id` int(11) NOT NULL,
`text` text NOT NULL,
PRIMARY KEY (`product_id`,`attribute_id`,`language_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
в него пишутся данные типо (1 строка 1 значение)
ид товара / ид атрибута / значение
(71, 15, 1, '1Гб'),
(71, 14, 1, '4Гб'),
(73, 18, 1, 'Есть'),
(73, 19, 1, 'Есть'),
(72, 19, 1, 'Есть'),
(72, 18, 1, 'Есть'),
(68, 20, 1, 'Есть'),
(101, 13, 1, '800*600'),
(69, 13, 1, '1024*600'),
суть вопроса такова:
Нужно выбрать ИД товара в котором 1 или несколько атрибутов равны заданным значениям.
по 1 атрибуту делаю выбор так:
SELECT * FROM product_attribute
WHERE attribute_id = '15' AND TEXT = '1Гб'
ORDER BY `product_attribute`.`product_id` ASC
все показывает что надо, а как выбрать товар у которого боле 1 атрибута равны заданным?
SELECT *
FROM product_attribute
WHERE (
attribute_id = '12'
AND TEXT = '10\'\''
)
OR (
attribute_id = '15'
AND TEXT = '1Гб'
)
ORDER BY `product_attribute`.`attribute_id` ASC
LIMIT 0 , 30
выводит и то что с 12 атрибутом и что с 15