gpt4 book ai didi

mysql - 选择具有用户自己的时间范围的行

转载 作者:行者123 更新时间:2023-11-30 21:35:13 26 4
gpt4 key购买 nike

我想根据用户自己的时间范围选择行。

假设我有两个表。第一个是关于用户事件日志数据。

| user_id    | date        | activity     |
|:-----------|------------:|:------------:|
| 1 | 1/1/18 | a1 |
| 1 | 2/12/18 | a2 |
| 1 | 3/21/18 | a3 |
| 2 | 1/13/18 | b1 |
| 2 | 2/4/18 | b2 |
| 2 | 3/24/18 | b3 |

第二个表是我要为每个用户提取的时间范围user_id, start_date, end_date

1, 1/1/18, 3/1/18
2, 2/1/18, 4/1/18

预期的结果是user_id、日期、事件

1, 1/1/18, a1
1, 2/12/18, a2
2, 2/4/18, b2
2, 3/24/18, b3

最佳答案

看起来您需要在两个表之间进行简单的 JOIN,并在事件日期使用 BETWEEN 条件:

SELECT ua.*
FROM user_activity ua
INNER JOIN time_range tr
ON ua.date BETWEEN tr.start_date AND tr.end_date

如果您的日期存储为字符串(正如 Raymond 评论的那样,似乎是这种情况),您需要使用 STR_TO_DATE 来转换它们:

ON STR_TO_DATE(ua.date, '%c/%e/%y') BETWEEN 
STR_TO_DATE(tr.start_date, '%c/%e/%y')
AND STR_TO_DATE(tr.end_date, '%c/%e/%y')

关于mysql - 选择具有用户自己的时间范围的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54222884/

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