我想知道是否可以查询标签表以找到通常一起使用的标签。
我有一个包含2个表,文本和标签的mysql数据库。标签是从文本中提取的关键字。表格标签'有3列id,tag和text_id。我在sql小提琴上放了一个样本
http://sqlfiddle.com/#!2/20504/1
我喜欢查询此表以找到" joker"和#34;蝙蝠侠"通常一起使用(虽然不总是)。
感谢任何帮助!
答案 0 :(得分:2)
您可以使用自联接来计算所有对的共现:
SELECT t1.tag as tag, t2.tag as tag2, count(*)
FROM tags t1 join
tags t2
on t1.text_id = t2.text_id and t1.tag < t2.tag
GROUP BY t1.tag, t2.tag
ORDER BY count(*) desc;
如果您只想要最常出现的对,那么您可以将limit 1
添加到查询中。