我试图在每个有事件的日期(来自表1)之前和之后获取第一个时间戳(在表2中)。有时是前后几秒钟,有时是几小时或几天。
我的table看起来像:
|-------|------------------|-------------|
| id | date | events |
|-------|------------------|-------------|
| 4 |2020-04-11 3:44:20| call |
| 2 |2020-04-21 7:59:06| appointment |
| 1 |2020-04-17 1:14:32| appointment |
| 3 |2020-04-10 3:41:17| feedback |
|-------|------------------|-------------|
表2如下所示:
|------------------|-------------|
| date | events |
|------------------|-------------|
|2020-04-13 3:07:13| feedback |
|------------------|-------------|
|2020-04-12 5:42:04| feedback |
|------------------|-------------|
|2020-04-18 2:52:11| call |
|------------------|-------------|
|2020-04-21 8:14:27| appointment |
|------------------|-------------|
这就是我想要的结果:
|----------|------------------|---------------------|------------------|
| id | date | previous_date | next_date |
|----------|------------------|---------------------|------------------|
| 4 |2020-04-11 3:44:20| 2020-04-12 5:42:04 |2020-04-12 5:42:04|
|----------|------------------|---------------------|------------------|
| 2 |2020-04-21 7:59:06| 2020-04-18 2:52:11 |2020-04-21 8:14:27|
|----------|------------------|---------------------|------------------|
| 1 |2020-04-17 1:14:32| 2020-04-13 3:07:13 |2020-04-18 2:52:11|
|----------|------------------|---------------------|------------------|
| 3 |2020-04-13 3:02:17| 2020-04-12 5:42:04 |2020-04-13 3:07:13|
|----------|------------------|---------------------|------------------|
任何帮助都将不胜感激。我的table当然比这个大得多。
这就是我一直在玩的东西,但没有成功:
SELECT
t1.id,
t1.date,
(
SELECT MIN(t1.date)
FROM table_1 AS t1
WHERE t1.date > t2.date
AND t1.events = t2.events
) AS NextDate
FROM table_2 t2
1条答案
按热度按时间q35jwt9p1#
您当前的问题可能是您给这两个表都加了别名
t2
在您的查询中。也就是说,子查询看起来确实可以在这里完成任务。从你的数据来看,你不想在
event
,仅在以下日期: