gpt4 book ai didi

mysql - 针对特定场景使用 sql 查询检索数据

转载 作者:行者123 更新时间:2023-11-30 22:01:17 25 4
gpt4 key购买 nike

我有一个如下所示的结果集/表

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;那天 Adamsdate_time 是否在 Jackdate_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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com