繁体   English   中英

如何列出按通用标签数排序的相关博客文章?

[英]How do I list related blog posts ordered by the number of common tags?

我想显示相关博客文章的列表,并且希望该列表按它们在当前文章中具有的常用标签数进行排序。 每个帖子可以具有与其关联的多个标签。 这是我的表结构:

[帖子] <-[帖子到联接表]-> [标签]

我正在使用PHP和MySQL-我可以在一个查询中执行此操作吗?

确保您可以在一个查询中执行此操作:

SELECT postid, count(tagid) as common_tag_count
FROM posts_to_tags
WHERE tagid IN (SELECT tagid FROM posts_to_tags WHERE postid = 2)
GROUP BY postid ORDER BY common_tag_count DESC; 

关于什么...:

SELECT COUNT(*) AS numcommon, posts.pid, posts.post FROM posts
               INNER JOIN p2t ON p2t.pid = posts.pid
               WHERE p2t.tid IN
               (SELECT p2t.tid FROM p2t
               INNER JOIN posts ON p2t.pid = posts.pid
               WHERE posts.pid = 1)
               AND posts.pid != 1
               GROUP BY posts.pid
               ORDER BY numcommon

假设pid是posts表中的主键,tid是tags表中的主键,则p2t(post to tag)表中的两个外键都是?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM