Php 仅获取最近的帖子
我有两个表,用户和帖子。我试图编写一个查询来查找用户的最新帖子,但遇到了问题。这是我到目前为止所拥有的 选择a.username,b.last_post from logins作为连接选择login_id,条目作为last_post from posts as b,其中a.id=b.login_idPhp 仅获取最近的帖子,php,mysql,sql,join,Php,Mysql,Sql,Join,我有两个表,用户和帖子。我试图编写一个查询来查找用户的最新帖子,但遇到了问题。这是我到目前为止所拥有的 选择a.username,b.last_post from logins作为连接选择login_id,条目作为last_post from posts as b,其中a.id=b.login_id 所以现在最后一个帖子就是它所拉帖子的时间戳。如何获得只显示这些用户最后一篇文章的表格?如果只需要两列,可以直接使用MAX 否则,如果要显示所有表中的所有列,可以使用子查询,该子查询分别获取每个登录i
所以现在最后一个帖子就是它所拉帖子的时间戳。如何获得只显示这些用户最后一篇文章的表格?如果只需要两列,可以直接使用MAX 否则,如果要显示所有表中的所有列,可以使用子查询,该子查询分别获取每个登录id的最新条目
非常感谢。您能否解释group by在第一个查询中的用法,而不是在第二个查询中的用法?顺便说一句,我使用了第二个。它只是根据用户名对记录进行分组,对于每个用户,它使用MAX获取最新条目
+-----------+---------------------+
| username | last_post |
+-----------+---------------------+
| something | 2013-10-08 22:12:00 |
| other | 2013-10-08 22:13:00 |
| test | 2013-10-08 22:13:03 |
| test | 2013-10-08 22:14:20 |
| hello | 2013-10-08 22:12:53 |
| hello | 2013-10-08 22:12:56 |
+-----------+----------+----------+
SELECT a.username,
MAX(b.entry) last_post
FROM logins a
INNER JOIN posts b
ON a.id = b.login_id
GROUP BY a.username
SELECT a.*, b.*
FROM logins a
INNER JOIN posts b
ON a.id = b.login_id
INNER JOIN
(
SELECT login_id, MAX(entry) entry
FROM posts
GROUP BY login_id
) c ON b.login_id = c.login_id AND
b.entry = c.entry