Mysql 通过标签获取相关帖子
嗨,我非常不擅长编写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
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帖子中的所有标签,并且是唯一的。