mysql - 为最新记录添加附加值(但显示所有记录)
问题描述
我必须在 MariaDB 中创建包含states
表中所有数据的视图:
| id | user_id | state |
但是到每个用户的最新记录(基于每个用户的最高状态 id)。我还必须添加列is_newest
并将其设置为 true ( 1
) - 其余记录应为 false ( 0
)。
这可以在查询中做到吗?
解决方案
你可以用 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
查看简化的演示。
推荐阅读
- php - 使用从 AJAX 请求返回的 Db 记录更新数据表
- credentials - java.io.FileNotFoundException:找不到资源:Java QuickStart for Classroom API 上的 /credentials.json
- python - strftime 返回 ValueError
- angular - 搜索为 unicode 角度
- mysql - 如何计算 MySQL JSON 数组中每个值的计数?
- angular - 在 Ionic4/Angular 项目中安全存储 API 密钥的位置
- javascript - 苗条的 html 列表块/段显示 -
- swift - 在不使用 Storyboard Reference 的情况下转到另一个 Storyboard?
- python - 我的 tkinter 输入框正在打印 .!entry 而不是输入的内容
- javascript - 为什么节点样式错误第一个回调在回调后返回未定义