我有以下/追隨者的表有3個字段:「WHERE」語句從另一個表
id , FollowingUserName,FollowedUserName
而且我有個職位表:
id,Post,PublishingUsername
我需要查詢返回
的某些字段,但「where」將在哪裏:
- 的
PublishingUsernam
從帖子將匹配FollowedUserName
從Following/Followers
表 - 和
FollowingUserName
將登錄的用戶名。
我有以下/追隨者的表有3個字段:「WHERE」語句從另一個表
id , FollowingUserName,FollowedUserName
而且我有個職位表:
id,Post,PublishingUsername
我需要查詢返回
的某些字段,但「where」將在哪裏:
PublishingUsernam
從帖子將匹配FollowedUserName
從Following/Followers
表FollowingUserName
將登錄的用戶名。要獲得帖子:
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
您正在尋找做JOIN它看起來像。基本上,您要從發佈用戶名後跟用戶名的發佈表中進行選擇,以及followusername = loggedin name的位置。
只是走一個刺(因爲我沒有一個SQL服務器現在在這裏),但它可能看起來像:
SELECT * FROM Posts INNER JOIN Following ON Posts.PublishingUsername = Following.FollowedUserName WHERE FollowingUserName = LoggedInName
沒有JOIN
您可以:
SELECT * FROM Posts p, Followers f
WHERE
f.FollowingUserName = 'LoggedInUserName'
AND f.FollowedUserName = p.PublishingUsername
問題有關SQL - 將上述說法實際上造成一個隱含的JOIN?看起來好像會,即使沒有指定。 – SubSevn
SELECT 'fields'
FROM TABLE1 INNER JOIN TABLE2
ON TABLE1.FollowedUserName = TABLE2.PublishingUsername
WHERE FollowingUserName = 'myvalue'
使用清潔劑加入語法
SELECT *
FROM following f
JOIN posts p ON p.PublishingUsername = f.FollowedUsername
AND f.FollowingUserName = LOGGED_IN;
謝謝,它的工作 – user2436536