![](/img/trans.png)
[英]SQL Select from table using the outcome of a previous SELECT query?
[英]How to SELECT SQL data using the results from a previous SELECT
假设我有 3 个表:
表 a 我有一个名字和 email
表 b 我有一个文本和用户(作为对表 a 中 email 的引用)
表 c 我有 follower 和 following(均引用表 a 中的 email)
我正在尝试开发一个简单的 html/php/sql web,它允许我注册许多用户并让他们发布不同的文本,同时也有机会关注或被其他用户关注(已经完成),我想给用户可以显示他自己发布的表 b 中的文本和他关注的用户的文本
我正在为如何提取这些信息而苦苦挣扎
SELECT b.text
FROM tableB as b
LEFT JOIN tableC as c
ON b.user = c.follower
WHERE b.user = "currentuser"
据我所知,它只显示用户自己发布的文本(我可以做的更简单)但我似乎无法理解如何从他关注的用户那里获取这些文本
我希望没有任何照片它可以理解
您首先要在表 c 行中找到当前用户为关注者的所有关注用户。 然后你想添加当前用户(或者总是让所有用户关注他们自己)。 然后你想找到这些用户的所有文本。
所以:
select b.text
from (
select following as user
from tableC
where follower="current user"
union
select "current user"
) show_users
join tableB as b on b.user=show_users.user
或者如果您有一个 tableC 行,其中所有用户的 follower=following,只需:
select b.text
from tableC as c
join tableB as b on b.user=c.following
where c.follower="current user"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.