【发布时间】:2021-08-22 06:06:48
【问题描述】:
我还在学习 MySQL,我有这张表...
| staff_id | Name | Monday | Tuesday |
|---|---|---|---|
| 1 | Mark | 8:00am-5:00pm | 9:00am-6:00pm |
| 2 | Steve | 9:00am-6:00pm | 7:00am-4:00pm |
我已经设法使用下面的脚本将新行拆分并插入到同一个表中。
INSERT INTO table (staff_id,Name,Monday)
(SELECT staff_id, Name, "8:00am-1:00pm"
FROM table
WHERE Monday= "8:00am-5:00pm");
INSERT INTO table (staff_id,Name,Monday)
(SELECT staff_id, Name, "2:00pm-5:00pm"
FROM table
WHERE Monday= "8:00am-5:00pm");
...etc...
它有效,但我最终得到了太多行(我正在处理数千行)。
有没有一种方法可以让我只使用 MySQL 脚本来获得如下表格?
| staff_id | Name | Monday | Tuesday |
|---|---|---|---|
| 1 | Mark | 8:00am-1:00pm | 9:00am-2:00pm |
| 1 | Mark | 2:00pm-5:00pm | 3:00pm-6:00pm |
| 2 | Steve | 9:00am-2:00pm | 7:00am-12:00pm |
| 2 | Steve | 3:00pm-6:00pm | 1:00pm-4:00pm |
其他解决方案建议使用聚合函数 (MAX),不幸的是,这在我的情况下不起作用,我不知道如何为此目的正确使用“JOIN”。
任何帮助将不胜感激。
【问题讨论】:
标签: mysql