我有以下/追随者的表有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