Mysql 通过标签获取相关帖子

Mysql 通过标签获取相关帖子,mysql,tags,posts,relation,Mysql,Tags,Posts,Relation,嗨,我非常不擅长编写mysql查询(我正在努力) 你们能帮我做这个吗 我有一个标签表: id | tag -------------------------------- 1 | css 2 | c++ 3 | perl 4 | sql 5 | pyhton PostsA_标签的另一个表: id | postID | tag -------------------------------- 1 | 1 | 1 2 | 1 | 2 3 | 2 | 1

嗨,我非常不擅长编写mysql查询(我正在努力)

你们能帮我做这个吗

我有一个标签表:

id | tag
--------------------------------
1  | css
2  | c++
3  | perl
4  | sql
5  | pyhton
PostsA_标签的另一个表:

id | postID | tag
--------------------------------
1  | 1      | 1
2  | 1      | 2
3  | 2      | 1
4  | 2      | 3
5  | 3      | 3
PostsB_标签的另一个表:

id | postID | tag
--------------------------------
1  | 1      | 2
2  | 2      | 3
3  | 2      | 1
4  | 3      | 4
5  | 3      | 5
另一张邮资表:

postID | info
--------------------------------
1      | this
2      | is
2      | infor
3      | mation
4      | lol
另一张邮政局表格:

postID | info
--------------------------------
1      | more
2      | infor
3      | mation
4      | please
5      | hahaha
因此,现在的挑战是从A岗位订购B岗位

这意味着,如果Peter是一个帖子的所有者,我们需要从他的所有帖子中获取他的所有标签。在这种情况下,它将是:

css, c++, perl
而Sam是B posts的所有者。现在我们需要根据Peter的标签(A标签)和每个Sam的帖子中的标签之间的一致性来订购Sam的帖子(B帖子)

在这种情况下,它将是:

css, c++, perl
B按一致因子DESC排序的员额

postID | info
--------------------------------
2      | infor 
1      | more
3      | mation
4      | please
5      | hahaha
我真的卡住了。我知道怎么拿到山姆的标签。但不是如何测量Sam标签和每个Peter帖子标签之间的一致性系数

对不起,我的英语是:S

提前谢谢


这是一把小提琴。。。sqlfiddle.com/#!2/8450c/3

我想我已经解决了这个问题

这是一个问题

SELECT *, SUM(`PostsA_tags`.`tag` = `PostsB_tags`.`tag`) as rel FROM `PostsB_tags`
LEFT OUTER JOIN `PostsA_tags` `PostsA_tags` ON(`PostsA_tags`.`tag` = `PostsB_tags`.`tag`)
GROUP BY `PostsB_tags`.`postID`
ORDER BY rel DESC

给你-->不幸的是,我不太理解逻辑——还有“a”、“b”、“sam”、“peter”——这有点让人困惑。而且。。。请注意,链接表中的代理项id列都是冗余的,因为您有一个自然PK。最后,这里提供的数据集与fiddle中的数据集不同(我怀疑是键入错误)。。。A2和B2是“最近的”,因为它们的标签相同。但是A1和B2或B1更相似吗?为什么?不,很难解释。B2之所以在顶部是因为B2的标签与山姆的标签有更多的巧合,它们是CSS、C++、Perl。Sam的标签是所有A帖子中的所有标签,并且是唯一的。