我有以下表格:
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'
此表中有多个kwywords。
我正在建造一个简单的搜索引擎 - 我需要展示符合多个标准的产品,例如:
选择产品,其中atcode ='type'和valcode ='wifi'和valcode ='品牌'和'valcode'='索尼'
我是否需要在这里为每组参数应用自联接?
现在我有以下查询:
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
然而,它没有返回任何产品。
有人可以帮我解决这个问题吗?
修改
我被告知我应该为每组关键字使用一个自联接。你觉得怎么样?
答案 0 :(得分:0)
一种方法是,对于每个匹配,您可以使用EXISTS子查询。
AND EXISTS (select 1 from products_match
where id_prod = a.id_prod
and atcode = 'type' and valcode = 'wifi')