首页 > 解决方案 > 为最新记录添加附加值(但显示所有记录)

问题描述

我必须在 MariaDB 中创建包含states表中所有数据的视图:

| id | user_id | state |

但是到每个用户的最新记录(基于每个用户的最高状态 id)。我还必须添加列is_newest并将其设置为 true ( 1) - 其余记录应为 false ( 0)。

这可以在查询中做到吗?

标签: mysqlsqlmariadbgreatest-n-per-groupsql-view

解决方案


你可以用 NOT EXISTS 来做到这一点:

select s.*, 
  (not exists(select 1 from states where user_id = s.user_id and id > s.id)) is_newest
from states s

查看简化的演示


推荐阅读