【发布时间】:2025-06-02 14:30:01
【问题描述】:
我正在尝试为用户的个人资料页面创建一个最近的活动部分。 对于这个例子,我有 3 个表。
一个是用户的表
+-------------+--------------+-------------+
: user_id : username : join_date :
+-------------+--------------+-------------+
: 1 : myacct : 2018-01-02 :
+-------------+--------------+-------------+
: 2 : johndoe : 2018-01-05 :
+-------------+--------------+-------------+
其次是 blog_post 表
+-------------+--------------+-------------+-----------+-----------+
: id : author_id : title : content : post_date :
+-------------+--------------+-------------+-----------+-----------+
: 1 : 2 : Some stuff : I like... : 2018-01-05:
+-------------+--------------+-------------+-----------+-----------+
: 2 : 1 : My Title : This i... : 2018-01-04:
+-------------+--------------+-------------+-----------+-----------+
第三是回复
+-------------+--------------+-------------+-----------+-----------+
: id : auth_id : headline : content : rep_date :
+-------------+--------------+-------------+-----------+-----------+
: 1 : 1 : thanks : Nice p... : 2018-01-04:
+-------------+--------------+-------------+-----------+-----------+
我想要做的是从 blog_posts.title 列和 replies.headline 列中获取所有内容(将结果完全分组),其中 author_id 和 auth_id 对应于 user_id。然后我想按日期降序排列。请注意,blog_posts 和回复表的日期列的名称不同(因为它们在我的真实情况下)。然后,我想将结果限制为 3(因此原因是“最近”的活动)。
我尝试使用 UNION ALL 并取得了一些成功。尽管它将一张表中的所有内容分组,但随后其他表也随之而来。另外,我对在 PHP 中使用 while 循环和 fetch_object() 函数获取它感到困惑
【问题讨论】: