我正在构建一个支持标签filter的搜索引擎。下面是我的数据库的结构,这是多对多的表
product_table
id name
1 p1
2 p2
3 p3
tagged_table
id pid tid
1 1 1
2 1 2
3 1 3
4 1 4
5 1 5
6 2 1
7 2 2
8 3 1
9 3 2
10 3 4
tag_table
id tag_name
1 t1
2 t2
3 t3
4 t4
5 t5
tagged_table.pid指的是product_table的id
tagged_table.tid指的是tag_table的id
如果我想在找到任何匹配项时返回结果,如何构建最快的sql查询,并按大部分匹配的数量对结果进行排序?
答案 0 :(得分:0)
感谢zerkms我将我的单个表改为'多关系'表(参考问题) 并使用简单的查询来解决我的问题。
SELECT COUNT(pid) AS matches FROM tagged_table WHERE tid IN (1,2,3,4) ORDER BY matches DESC