mysql - 查找经常一起使用的标签

标签 mysql sql

我想知道是否可以查询标签表来查找经常一起使用的标签。

我有一个 mysql 数据库,有 2 个表、文本和标签。标签是从文本中提取的关键字。表“tags”有 3 列 id、tag 和 text_id。我已经在 sql fiddle 上放了一个示例

http://sqlfiddle.com/#!2/20504/1

我喜欢查询此表以发现“ clown ”和“ bat 侠”通常一起使用(尽管并非总是如此)。

感谢任何帮助!

最佳答案

您可以使用自连接来计算所有对的共现:

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 添加到查询中。

关于mysql - 查找经常一起使用的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25409203/

相关文章:

如果条件存在,MySQL 触发器

sql - 主聚集键默认顺序是升序的吗?

php - 内部连接不显示任何输出,而它显示没有内部连接的输出

mysql - DerbyDB 中的增量 ID

php - 通过php插入mysql数据库总是导致崩溃

mysql - 如何使用自定义文本在 SQL 查询中创建列

mysql - 从 MySQL 中的多行中选择一个值

mysql - 错误代码: 500 - Website not loading

sql - 数据库修改脚本 - 推出/回滚最佳实践?

MySQL - 只需要选择行,其中对于 id,另一列中有两个可能的数字