目前我正在社交网络上工作。我决定建立 friend 关系(像 FB 那样)而不是关注用户(像 TW 那样),这就是我的问题。
所以,我有 3 个表(用户、帖子、好友)。
我想这样做,以便如果用户没有 friend (或只是发送了邀请[ friend 表中的friends_type == 1]),则仅显示他的帖子。
我的想法是:从用户、帖子、 friend 中选择*,其中friends_status=4
,但是当用户有 friend 时,我希望看到他和他的 friend 的帖子。
当然,这是我所做的 SQL 查询:SELECT * FROM posts、users、friends WHERE user_id=post_author AND Friends_status=4 AND (friend_friendid=user_id ORfriend_userid=user_id) ORDER BY post_id DESC
.
基本上,我想实现 Facebook 主页上的功能(永无休止的时间线,你可以滚动和滚动)。我的问题是:如何构建该查询?
最佳答案
这是一种方法,使用子请求来查找 friend :
select *
from posts
where post_author = {user_id}
or post_author in
(
select friend_friendid from friends
where friend_userid = {user_id}
and friend_status != 1
)
关于php - SQL 查询问题(使用 3 个表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47850882/