我需要一些关于mysql查询的帮助
我正在使用wordpresses标签系统和一些我自己设计的表格
这个想法是为了拉回与原始帖子有共同标签的项目列表,我将尽我最大的努力解释
假设您有一篇包含5个标签的帖子: tagA、tagB、tagC等等
我想在mysql上运行一个查询,该查询将拉回一个列表,该列表按其他项目有多少共同的标签排序
我想它会基于与原始帖子相关联的标签计数来创建一个新的专栏。
因此,如果一篇文章有相同的5个标签,我会在新的专栏中看到post_id和5
| post_id | in_common |
-----------------------
| 35 | 5 |
-----------------------
| 109 | 5 |
-----------------------
| 100 | 4 |诸若此类。
但是我甚至不确定从哪里开始这个查询
标签是用wordpresses表示的,要获得基于单个标签的所有帖子,我可以使用
SELECT *
FROM wp_posts
inner JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_ID
inner JOIN wp_terms ON wp_terms.term_id = wp_term_relationships.term_taxonomy_id
WHERE wp_terms.name = 'tax'发布于 2012-11-07 23:02:43
正如你提到的wordpress,我猜你使用的是PHP。因此,我建议使用PHP构建一个逗号分隔(并正确转义)的当前帖子的term_taxonomy_id列表,然后使用类似下面这样的简单查询来获取具有共同标签的所有帖子的列表:
SELECT wp_posts.ID, COUNT(*)
FROM wp_posts
JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_ID
WHERE term_taxonomy_id IN ('.$the_list.')
GROUP BY wp_posts.IDhttps://stackoverflow.com/questions/13272065
复制相似问题