SQL选择关键字匹配用户兴趣的帖子

时间:2016-10-08 19:33:17

标签: php mysql sql blogs discover

我目前在博客网络应用中遇到了一些技术问题。我想创建一个Discover页面,用户可以根据兴趣找到新帖子。我将通过在这些帖子中添加关键字来实现此目的。这样我就可以选择用户和帖子关键字的兴趣相匹配的帖子。我现在意识到我已经徘徊在深水中。

经过大量的研究,我现在决定分享我的问题并得到一些指导。我有4个表,"用户" "帖子" "关键字" "兴趣" "关键字" 表包含" post_id" " keyword_value" 。 "兴趣"表格包含" user_id" " interest_value"

现在,如何从"帖子" 表中选择与帖子相关联的关键字与当前用户的兴趣相匹配的帖子。

提前致谢。所有回复都表示赞赏。

数据样本:

"用户" [1]

"帖子" enter image description here

"利益" enter image description here

"关键字" enter image description here

1 个答案:

答案 0 :(得分:1)

如果您提供了一些数据,那将非常有用。我怀疑你说错了你的表 - 我认为你的意思是关键字表有 post_id keyword_value 以及兴趣< / strong>表格包含 user_id interest_value 。如果是这种情况,那么此查询应该有效:

SELECT *
FROM posts
WHERE post_id IN (
        SELECT post_id
        FROM keywords
        WHERE keyword_value IN (
                SELECT interest_value
                FROM interests
                WHERE user_id = @userId
                )
        )

enter image description here