Ben*_*Ben 1 php mysql sql many-to-many
那么这个对我来说是一个头脑风暴.我有一个带标签的帖子系统.标签与帖子有很多很多关系.
问题是我想根据他们与当前标签匹配的标签数来选择其他帖子.
一个快速的视觉示例:
PostA: TagA, TagB
PostB: TagC
PostC: TagA
PostD: TagA, TagB
Run Code Online (Sandbox Code Playgroud)
所以,如果我输入PostA,它会给我PostD,PostC.
我真的甚至不知道从哪一个开始,我希望有人比我遇到这个问题更聪明,可以提供一些帮助.
好的,假设你的标记帖子表实际上是这样的:
PostA TagA
PostA TagB
PostB TagC
PostC TagA
PostD TagA
PostD TagB
Run Code Online (Sandbox Code Playgroud)
那你想要的
SELECT post FROM tagged_posts
WHERE post != 'PostA'
AND tag in (SELECT tag FROM tagged_posts WHERE post = 'PostA')
GROUP BY post
ORDER BY COUNT(*) desc
Run Code Online (Sandbox Code Playgroud)