让我们猜猜我有3张桌子:

表A,其中我有姓名和邮箱

表b,其中我有一个文本和用户(作为表a中邮箱的参考)

表c,其中我有关注者和追随者(都引用了表a中的邮箱)

我正在try 开发一个简单的html/php/sql网站,允许我注册许多用户,让他们发布不同的文本,同时也有机会关注或被其他用户关注(已经完成),我想让用户有可能显示他自己发布的表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=Follower for all User,只需:

select b.text
from tableC as c
join tableB as b on b.user=c.following
where c.follower="current user"

Php相关问答推荐

仅显示特定WooCommerce产品类别的额外产品字段

当我们使用PHPUnit时,控制台中的--uses param到底起了什么作用以及如何使用?

如何将对我的域的请求重定向到子文件夹中的索引,同时保留域URL并使用.htaccess?

Laravel;Composer安装突然返回选项快捷方式不能为空.

通过注册在Laravel中分配角色

PHP MySQL求和子树并与父树累加

按列值将二维数组排序为不超过N个的递增组

在WooCommerce Admin产品列表自定义列中显示来自元数据的统计数据

防止 WooCommerce 在前端加载全尺寸图像

如何在laravel中获得两个时间戳之间的小时和分钟差异

WooCommerce:如果订单总数为零,则隐藏本地取货运输选项

Filament PHP v3:在禁用的表单字段上,ID 不会写入数据库

设置GA4 PHP API的setSubject以允许访问所有管理员账户属性

WooCommerce checkout 流程中基于所选选项添加自定义费用

批量作业(job)提交错误无法处理所有文档,uris 似乎正确?

使用 RSA 2048 公钥验证 RSA PKCS#1v1.5 SHA 256 签名

按数字然后按字符串对关联 PHP 数组进行排序

PHP Remedy API 调用以创建附件无效的条目(使用 Postman Works!)

使用 v-for 的存储链接中的 Img src 在 Laravel vuejs 中不起作用

fopen 功能不断向我发送我重新加载网页时已发布的重复版本的表单