2013-06-03 95 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;