我在sql中有这种类型的数据库表
id | state | msg | userid | time |
1 |unread | hi | 1 | time |
2 |unread |hello| 1 | time |
3 |unread | hi | 2 | time |
4 | read | hi | 2 | time |
我对打印行进行传导
Where state=unread
现在输出是
= userid 1 send you 'hi'
= userid 1 send you 'hello'
= userid 2 send you 'hi'
但是我想这样输出
= userid 1 send you 'hello'
= userid 2 send you 'hi'
删除相同的 userid 行并只选择最后一个(使用 php 和 sqli)
最佳答案
试试这个:
SELECT a.id, a.state, a.msg, a.userid, a.time
FROM tableA a
INNER JOIN (SELECT a.userid, MAX(a.id) id
FROM tableA a
WHERE a.state = 'unread'
GROUP BY a.userid
) AS b ON a.userid = b.userid AND a.id = b.id;
关于mysql - 关于 SQL 行过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27287228/