gpt4 book ai didi

mysql - 社交网络上事件/新闻提要的 sql 查询复杂化

转载 作者:行者123 更新时间:2023-11-30 23:18:39 24 4
gpt4 key购买 nike

我目前正在学习各种不同的东西,所以为了做到这一点,我目前正在为自己建立一个小型社交网站并实现目标。我还有几件事要做,其中之一是事件/新闻提要或随便你怎么调用它。它非常简单,可以在您的个人资料提要上显示您自己的帖子。但是在索引页面上,它将是您自己的帖子以及您 friend 的帖子,这就是我正在努力解决的问题。首先,我有一个 friends 表,其中包含 user_oneuser_two 列,如果你的 friend 在其中一个和另一个中用户在另一个。我最初尝试拉取几个不同用户发表的帖子的查询是

SELECT * FROM `post`, `friends` WHERE `user_id` = $user_id AND (`friends`.`user_one` = $user_id OR `friends`.`user_two` = $user_id)

它应该从这里选择帖子和 friend ,其中帖子 user_id = $_SESSION['user_id'] AND where user_one OR user_two in the friends table = $_SESSION['user_id']。这应该得到与 $_SESSION['user_id'] 在同一行(在 friends 表中)的 OTHER user_id 发表的任何帖子 ...

但问题是正在发生的事情是它拉起一个结果,而不是像我希望的那样只是一个帖子,它拉起重复。我认为这是因为它拉出了双重结果,因为它就像..说我用户 1.. 用户 2 和 3 是我的 friend ,它为用户 2 拉出一个结果,为用户 3 拉出一个结果。 ..

我想要的是仅提取一个结果以显示在我和我的“ friend ”发布的用户 1 的事件提要中...有人可以建议我如何最好地做到这一点吗?如果有人能理解我,哈哈...

干杯

理查德

最佳答案

您没有加入两个表,这就是您得到重复项的原因。

我会这样写这个查询:

SELECT * 
FROM `post`
WHERE EXISTS (SELECT * FROM `friends`
WHERE (`friends`.`user_one` = $user_id AND `post`.`user_id` = `friends`.`user_two`)
OR (`friends`.`user_two` = $user_id AND `post`.`user_id` = `friends`.`user_one`)
)

关于mysql - 社交网络上事件/新闻提要的 sql 查询复杂化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16497526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com