mysql - 如何在我的查询中添加一个显示少于当前日期的数据的新列?
问题描述
我在下面看到的当前查询显示了用户详细信息和他们已注册的活动,但是在他们参加了一个活动后,我想要另一列显示 WHERE Start_Date < CURDATE() 以便在他们已注册的当前活动之间进行拆分和他们已经参加过的活动。有什么想法可以将其添加到以下查询中吗?
SELECT users.username, users.user_firstname, users.user_lastname, users.user_role,
GROUP_CONCAT( Events.Event_Name ) AS Event_Names, COUNT(Events.Event_Name) AS Event_Count
FROM users LEFT JOIN
user_events
ON users.id = user_events.id LEFT JOIN
Events
ON Events.Event_ID = user_events.Event_ID
GROUP BY users.username, users.user_firstname, users.user_lastname, users.user_role
理想情况下:
| username| user_firstname | user_lastname | user_role | Event_Name |PreEve
| M | jo | mccann | employee | baking,run | fight
解决方案
这是你想要的吗?
SELECT u.username, u.user_firstname, u.user_lastname, u.user_role,
GROUP_CONCAT(CASE WHEN e.Start_Date < CURDATE() THEN e.Event_Name END) AS Previous_Event_Names,
GROUP_CONCAT(CASE WHEN e.Start_Date >= CURDATE() THEN e.Event_Name END) AS Future_Event_Names,
COUNT(e.Event_Name) AS Event_Count
FROM users u LEFT JOIN
user_events ue
ON u.id = ue.id LEFT JOIN
Events e
ON e.Event_ID = ue.Event_ID
GROUP BY u.username, u.user_firstname, u.user_lastname, u.user_role;
GROUP_CONCAT()
忽略NULL
值。
推荐阅读
- asp.net - 在 VIsual Studio 2019 中,有没有办法查看 ASPX 文件中某些方法或属性的引用?
- python - 如何使用硒循环浏览确实的工作页面
- puppeteer - 如何提高 XVFB 显示质量
- google-sheets - 如何根据员工的时间表查找在特定日期处理消息的人员
- mysql - 每组前两名之间的 Sql 差异
- git - 如何使用远程 git 分支的更改更新本地分支,而无需“合并”提交
- dynamics-crm - 我无法将 StatusCode 字段添加到列表实体中的表单和视图
- docker - 带有 Docker 的 Windows 10 IoT Enterprise 2019
- javascript - 处理上传多个上传反应的状态
- kotlin - hashSet 中的同一个对象可以在 kotlin 中存在超过 2 个吗