繁体   English   中英

如何使用之前 SELECT SQL 数据的结果 SELECT

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM