2013-06-03 97 views
1

我有以下/追随者的表有3个字段:“WHERE”语句从另一个表

id , FollowingUserName,FollowedUserName

而且我有个职位表:

id,Post,PublishingUsername 

我需要查询返回

的某些字段,但“where”将在哪里:

  • PublishingUsernam从帖子将匹配FollowedUserNameFollowing/Followers
  • FollowingUserName将登录的用户名。

回答

0

要获得帖子:

select p.* from posts p where p.PublishingUsername in 
(select FollowedUsername from followers) 
and p.PublishingUsername = LOGGEDINUSER 

或者你可以使用一个连接:

select p.* from posts p 
left join followers f on f.PublishingUsername = p.PublishingUsername 
and p.publishingUsername = LOGGENINUSER 
+0

谢谢,它的工作 – user2436536

0

您正在寻找做JOIN它看起来像。基本上,您要从发布用户名后跟用户名的发布表中进行选择,以及followusername = loggedin name的位置。

只是走一个刺(因为我没有一个SQL服务器现在在这里),但它可能看起来像:

SELECT * FROM Posts INNER JOIN Following ON Posts.PublishingUsername = Following.FollowedUserName WHERE FollowingUserName = LoggedInName

0

没有JOIN您可以:

SELECT * FROM Posts p, Followers f 
WHERE 
    f.FollowingUserName = 'LoggedInUserName' 
    AND f.FollowedUserName = p.PublishingUsername 
+0

问题有关SQL - 将上述说法实际上造成一个隐含的JOIN?看起来好像会,即使没有指定。 – SubSevn

0
SELECT 'fields'  
FROM TABLE1 INNER JOIN TABLE2 
ON TABLE1.FollowedUserName = TABLE2.PublishingUsername 
WHERE FollowingUserName = 'myvalue' 
0

使用清洁剂加入语法

SELECT * 
FROM following f 
JOIN posts p ON p.PublishingUsername = f.FollowedUsername 
AND f.FollowingUserName = LOGGED_IN;