我有一个如下所示的结果集/表
user_id |date_time |name |
----------|--------------------|------|
1 |2017 年 5 月 4 日 08:00 | jack |
2 |05/04/2017 09:00 |亚当斯 |
1 |2017 年 5 月 4 日 13:06 | jack |
1 |2017 年 5 月 4 日 13:45 | jack |
1 |2017 年 6 月 4 日 09:15 | jack |
1 |2017 年 7 月 4 日 10:00 | jack |
1 |10/04/2017 12:00 | jack |
2 |10/04/2017 12:30 |亚当斯 |
1 |2017 年 10 月 4 日 15:44 | jack |
我想对每一天的每个用户的 date_time
进行升序排序。
我期望结果如下:(我对第二行和最后一行有问题)。 4 月 5 日
Jack
的所有行应该放在一起,然后是 Adams
;那天 Adams
的 date_time
是否在 Jack
的 date_time
之间
user_id |date_time |name |
----------|--------------------|------|
1 |2017 年 5 月 4 日 08:00 | jack |
1 |2017 年 5 月 4 日 13:06 | jack |
1 |2017 年 5 月 4 日 13:45 | jack |
2 |05/04/2017 09:00 |亚当斯 |
1 |2017 年 6 月 4 日 09:15 | jack |
1 |2017 年 7 月 4 日 10:00 | jack |
1 |10/04/2017 12:00 | jack |
1 |2017 年 10 月 4 日 15:44 | jack |
2 |10/04/2017 12:30 |亚当斯 |
添加我用来获得此结果集的查询:
SELECT DISTINCT user_table.user_id
,diary_table.date_time
,user_table.NAME
FROM user_table
INNER JOIN diary_table ON user_table.user_id = diary_table.diary_user_id
AND (
date_time >= '06-Apr-2017 00:00:00'
AND date_time <= '15-Apr-2017 23:59:59'
)
AND diar_user_id IN (
SELECT DISTINCT diar_user_id
FROM diary_table
INNER JOIN event_table ON event_table.event_id = diary_table.diar_event_id
WHERE event_table.event_name = 'Lunch'
AND (
date_time >= '06-Apr-2017 00:00:00'
AND date_time <= '15-Apr-2017 23:59:59'
)
)
ORDER BY date_time ASC
,NAME
,ASC
最佳答案
通过使用日期列解决了这个问题。查询如下:
SELECT DISTINCT DISTINCT DATEADD(DAY, DATEDIFF(DAY, 0, date_time), 0) AS theDay
,user_table.user_id
,diary_table.date_time
,user_table.NAME
FROM user_table
INNER JOIN diary_table ON user_table.user_id = diary_table.diary_user_id
AND (
date_time >= '06-Apr-2017 00:00:00'
AND date_time <= '15-Apr-2017 23:59:59'
)
AND diar_user_id IN (
SELECT DISTINCT diar_user_id
FROM diary_table
INNER JOIN event_table ON event_table.event_id = diary_table.diar_event_id
WHERE event_table.event_name = 'Lunch'
AND (
date_time >= '06-Apr-2017 00:00:00'
AND date_time <= '15-Apr-2017 23:59:59'
)
)
ORDER BY theDay
,NAME ASC
,date_time ASC
关于mysql - 针对特定场景使用 sql 查询检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43250895/