mysql - 只查找一条记录的分组查询(employee_id = 1 或 null)
问题描述
如果employee_id 具有该记录的价值,我不会为每个工作日获取唯一记录,否则employee_id 为Null。我试试这个查询
SELECT
*
FROM
`calendar`
WHERE `employee_id` = 1
OR `employee_id` IS NULL
GROUP BY `weekday`
结果是
但我期待
你能帮助我吗?谢谢
解决方案
试试这个:
SELECT
b.calendar_id,
a.employee_id,
a.weekday
FROM
(SELECT
`weekday`,
MAX(employee_id) AS employee_id
FROM
calendar
WHERE employee_id = 1
OR employee_id IS NULL
GROUP BY `weekday`) a
LEFT JOIN calendar b
ON a.weekday = b.weekday
AND a.employee_id = b.employee_id ;
如果有任何澄清,请告诉我。
推荐阅读
- mysql - 如何从 docker 容器中访问同一主机上的 MySQL 数据库?
- android - 我可以使用 Sqlite 数据库中的表列作为资源变量吗?
- python-3.x - ImportError:无法导入名称“pairwise_distances_chunked”
- angular - Angular 5 - 如何在 DOM 元素上动态添加事件?
- c# - 如何在 Akka.Net 中使用动态路由路由实现自定义路由
- git - 从 Fork 做 PR 的更改和修改的文件更大
- python - matplotlib 没有显示图例
- python - Django 高级教程:成功安装自己的包后尝试运行服务器或迁移应用程序时出错
- c# - 以高效的方式过滤 2 个列表
- android - 调试 kotlin 源代码