我正在使用 php 和 mysql 构建一个简单的问题/回复系统。
我想要做的是显示所有问题,其中包括他们的回复计数和最后回复的时间戳。
这是我的表的结构:
Table 'Discussion':
id | title | description | user_id | timestamp
--------------------------------------------------------------------------------
Table 'Reply':
id | reply_text | user_id | discussion_id | timestamp
我现在正在做的是选择讨论并获得这样的回复计数:
SELECT
d.*,
count(dr.id) AS replies_count
FROM discussion d
LEFT JOIN discussion_reply dr ON d.id = dr.discussion_id
GROUP BY d.id
这会返回像id | title | description | user_id | timestamp | replies_count
然后(通过 PHP)我遍历结果并查询数据库以获取每个讨论的最新(最大)时间戳的回复。
因此,对于第一个查询返回的每一行,都会进行一个新查询。
有没有办法通过执行一个查询来获取我需要的所有信息?
就像修改我的初始查询,使其返回:
编号 | 标题 | 描述 | 用户 ID | 时间戳 | 回复数 | latest_reply_timestamp
先感谢您