У меня есть следующие таблицы:
products_match:
atcode varchar(6)
valcode varchar(100)
id_prod varchar(15)
продуктов:
asin varchar(15)
title varchar(155)
Пример содержимого таблицы products_match:
atcode='type'
valcode='wifi'
id_prod='1SC52DD'
atcode='type'
valcode='ram'
id_prod='11DD5ER'
В этой таблице несколько ключевых слов.
Я создаю простую поисковую систему - мне нужно отобразить продукты, соответствующие нескольким критериям, например:
выберите продукты, где atcode = 'type' AND valcode = 'wifi' AND valcode = 'brand' AND 'valcode' = 'Sony'
Нужно ли применять самостоятельные объединения для каждой группы аргументов здесь?
Сейчас у меня следующий запрос:
SELECT * FROM products_match a
JOIN products b ON a.id_prod=b.asin
JOIN assortment_match c ON a.id_prod=c.id_prod
WHERE c.atcode='brand' AND c.valcode='sony'
ORDER BY sales_rank ASC LIMIT 0,60
однако продукт не возвращается.
Кто-нибудь может мне помочь решить эту проблему?
Редактировать
Мне сказали, что я должен использовать одно самостоятельное соединение для каждой группы ключевых слов. Что ты думаешь?