Mysql-视图中每n行增加日期时间

问题描述 投票:1回答:1

我有两个表,我想每n行增加一个datetime字段

jobs

| job_id | group_id |     start_date   | limit | delay  |
+--------+----------+------------------+-------+--------+
|    1   |    1     | 2019-10-10 08:00 |   2   |  3600  |
|    2   |    1     | 2019-10-10 14:00 |   0   |    0   |
|    3   |    2     | 2019-10-10 14:00 |   1   |  1800  |


users

| user_id | group_id | user_name  |  row_num |
+---------+----------+------------+----------+
|  xxx    |    1     | Homer      |     1    |
|  xxx    |    1     | Barney     |     2    |
|  xxx    |    1     | Bart       |     3    |
|  xxx    |    1     | Ned        |     4    |
|  xxx    |    1     | Marge      |     5    |
|  xxx    |    1     | Moe        |     6    |
|  xxx    |    1     | Maggie     |     7    |
|  xxx    |    2     | Lisa       |     1    |
|  xxx    |    2     | Otto       |     2    |
|  xxx    |    2     | Marge      |     3    |

结果应该是这个

|  job_id  | group_id | user_name | start_date        |
+----------+----------+-----------+-------------------+
|    1     |    1     | Homer     | 2019-10-10 08:00  |
|    1     |    1     | Barney    | 2019-10-10 08:00  |
|    1     |    1     | Bart      | 2019-10-10 09:00  |
|    1     |    1     | Ned       | 2019-10-10 09:00  |
|    1     |    1     | Marge     | 2019-10-10 10:00  |
|    1     |    1     | Moe       | 2019-10-10 10:00  |
|    ...   |   ...    | ...       | ...               |
|    2     |    1     | Homer     | 2019-10-10 14:00  |
|    2     |    1     | Barney    | 2019-10-10 14:00  |
|    2     |    1     | Bart      | 2019-10-10 14:00  |
|    2     |    1     | Ned       | 2019-10-10 14:00  |
|    2     |    1     | Marge     | 2019-10-10 14:00  |
|    2     |    1     | Moe       | 2019-10-10 14:00  |
|    ...   |   ...    | ...       | ...               |
|    3     |    2     | Lisa      | 2019-10-10 14:00  |
|    3     |    2     | Otto      | 2019-10-10 14:30  |
|    3     |    2     | Marge     | 2019-10-10 15:00  |
|    ...   |   ...    | ...       | ...               |

为了现在实现此目的,我创建了一个php脚本来提取数据,进行循环并将其插入表中。我想知道您是否只能通过使用mysql查询来执行此操作,以及如何执行此操作。

谢谢

mysql-5.6
1个回答
0
投票

这里是一种选择:

SELECT
    j.job_id,
    j.group_id,
    u.user_name,
    TIMESTAMPADD(HOUR, FLOOR((u.row_num-1) / 2), u.start_date
FROM jobs j
INNER JOIN users u
    ON j.group_id = u.group_id
ORDER BY
    j.job_id,
    j.group_id;
© www.soinside.com 2019 - 2024. All rights reserved.