gpt4 book ai didi

php - mysql查询中的多个连接

转载 作者:行者123 更新时间:2023-11-30 00:55:54 25 4
gpt4 key购买 nike

我正在制作一个模拟 Twitter 网站,对于主要提要,我正在尝试查询我的数据库中的所有帖子,并从某人关注的用户转发,其中 $user_id 是当前登录的人。当我运行查询时仅显示重新发布的帖子。任何人都可以给我关于如何解决这个问题的建议吗?

$query_feed = "SELECT posts.post, posts.date, users.handle, posts.id, posts.image,        users.profile_pic, repost.post_id, repost.user_id
FROM posts
JOIN users ON posts.author_id = users.id
JOIN following ON " . $user_id . " = following.follower_id
JOIN repost ON posts.id = repost.post_id
WHERE (posts.author_id = following.followee_id) OR (repost.user_id = following.followee_id)
ORDER BY posts.id desc";

最佳答案

如果您不想要 repost要消除结果集中的记录,您需要使用外连接。

还有,你的join following 的条件表位于 where条款,以及 where条款包含您的 join健康)状况。此外,由于您的join following的条件引用 repost 中的字段,加入顺序不正确。

$query_feed = "SELECT posts.post, posts.date, users.handle, posts.id, posts.image,        users.profile_pic, repost.post_id, repost.user_id
FROM posts
JOIN users ON posts.author_id = users.id
LEFT JOIN repost ON posts.id = repost.post_id
JOIN following ON (posts.author_id = following.followee_id) OR (repost.user_id = following.followee_id)
WHERE " . $user_id . " = following.follower_id
ORDER BY posts.id desc";

我不确定 MySQL 是如何准确处理事情的,但你可能仍然遇到 NULL 的问题。来自LEFT JOIN当你执行following时表连接。我将在查询分析器中运行查询以确定您是否获得了预期结果。

关于php - mysql查询中的多个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20568898/

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