我有两个表,我想每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查询来执行此操作,以及如何执行此操作。
谢谢
这里是一种选择:
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;