首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql -视图中每n行的增量日期时间

Mysql -视图中每n行的增量日期时间
EN

Stack Overflow用户
提问于 2019-10-25 11:29:52
回答 1查看 111关注 0票数 1

我有两个表,我想每n行增加一个日期时间字段

代码语言:javascript
复制
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    |

结果应该是

代码语言:javascript
复制
|  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查询来完成这个任务,以及我如何做到这一点。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-25 11:36:16

以下是一个选择:

代码语言:javascript
复制
SELECT
    j.job_id,
    j.group_id,
    u.user_name,
    TIMESTAMPADD(HOUR, FLOOR((u.row_num-1) / 2), j.start_date) AS start_date
FROM jobs j
INNER JOIN users u
    ON j.group_id = u.group_id
ORDER BY
    j.job_id,
    j.group_id,
    u.row_num;

这里的逻辑是,我们在开始日期增加一个小时,row_num每增加两个小时,从行号的第二步开始(即从3开始)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58557696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档