sql - 选择查询不能正常工作-SQL
问题描述
我正在建立一个社交网络,并想显示用户所做的帖子以及他关注的帖子。
当我关注某人时,查询工作正常,它显示用户帖子和他关注的人的帖子,但是当我不关注任何人时,用户帖子也会消失,但不应该这样做:
桌子:
询问:
SELECT DISTINCT posts.id, posts.body, posts.posted_at, posts.postimg, posts.likes, users.username
FROM users, posts, followers
WHERE (posts.user_id = followers.user_id OR posts.user_id = 50)
AND users.id = posts.user_id AND follower_id = 50
ORDER BY posts.posted_at DESC;
解决方案
我认为,这应该给你你想要的:
SELECT DISTINCT posts.id, posts.body, posts.posted_at, posts.postimg, posts.likes, users.username
FROM posts
LEFT JOIN users ON posts.user_id = users.id
LEFT JOIN followers ON posts.user_id = followers.user_id
WHERE posts.user_id = 50
ORDER BY posts.posted_at DESC;
推荐阅读
- php - 面临的问题:“试图获取非对象的属性‘标题’
- android - 调用 notifyitemsetchanged() 后 RecyclerView 适配器数据正在重置
- macos - Mac 中的自动机 | 使用 conda 环境调度脚本
- javascript - 如何将SQL返回数组改成一个值返回到前端?
- c++ - 在 PostgreSQL C 扩展中包含头文件
- oracle-apps - oracle应用程序中的org_id和organization_id有什么区别?
- sql-server - 如何编写存储过程查询
- python - 无法理解 sklearn 的 PolynomialFeatures
- mysql - 导入大 SQL 文件时出现错误 2006
- entity-framework - 具有多对多关系的实体框架的复制/克隆