【问题标题】:about SQL Row filter关于 SQL 行过滤器
【发布时间】:2014-12-04 05:51:54
【问题描述】:

我在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'

删除相同的用户 ID 行并只选择最后一个(使用 php 和 sqli)

【问题讨论】:

    标签: mysql sql select group-by greatest-n-per-group


    【解决方案1】:

    试试这个:

    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;
    

    【讨论】:

      猜你喜欢
      • 2020-03-12
      • 1970-01-01
      • 2014-06-17
      • 2020-06-22
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多