2017-02-11 59 views
0

我有3个表大致如下图所示:SQL得到的所有条目由IDS

create table user(
    id integer primary key 
) 

create table post(
    id integer primary key, 
    author integer, 
    foreign key (author) references user(id) 
) 

create table user_following(
    id integer primary key, 
    follower integer, 
    followee integer, 
    foreign key (follower) references user(id), 
    foreign key (followee) references user(id) 
) 

这些表是由ORM框架创建,我想用原始的SQL用户的​​得到的所有帖子,可以是多个用户。我可以在SQL中完成吗?

回答

0

如果您知道关注者的ID,以下语句将进行连接并获取关注者的关注者的帖子。您可以用任何用户ID替换数字3。

SELECT * FROM user_following AS a 
    JOIN post AS b ON a.followee = b.author 
    WHERE a.follower=3; 
0

像这样的东西?

select p.* 
from post p 
join user_following uf on p.author = uf.followee 
where uf.follower = 123; 
0
select posts.* 
from post posts 
inner join [user] u_followee on u_followee.id = posts.author 
inner join user_following ufo on ufo.followee = u_followee.id 
inner join [user] u_follower on ufo.follower = u_follower.id 
where u_follower.id = @USER_ID_WHOSE_FOLLOWEE_POSTS_REQUIRED