查询并将查询结果创建一个新表,任务完成后满足以下要求: MySQL 服务处于运行状态 新的表名称为 favorite,包含四列:id(主键),user_name(用户名),course_name(课程名),study_time(学习时间) favorite 表中存储的是所有在 usercourse 表中有学习记录的用户学习时间最长的课程,如果有多门课程学习时间相同,则都存入该表
时间: 2024-03-26 18:40:18 浏览: 58
查询一个表的所有外键名称,主键名称,主键列ID,主键列名,外键表ID,外键列ID,外键列名
5星 · 资源好评率100%
可以使用以下 SQL 语句来创建新表 favorite 并插入数据:
```
CREATE TABLE favorite (
id INT NOT NULL AUTO_INCREMENT,
user_name VARCHAR(50) NOT NULL,
course_name VARCHAR(50) NOT NULL,
study_time INT NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO favorite (user_name, course_name, study_time)
SELECT uc.user_name, uc.course_name, MAX(uc.study_time)
FROM usercourse uc
GROUP BY uc.user_name
HAVING MAX(uc.study_time) >= 1;
INSERT INTO favorite (user_name, course_name, study_time)
SELECT uc.user_name, uc.course_name, MAX(uc.study_time)
FROM usercourse uc
WHERE NOT EXISTS (
SELECT * FROM favorite f
WHERE f.user_name = uc.user_name
AND f.study_time >= uc.study_time
)
GROUP BY uc.user_name, uc.course_name
HAVING MAX(uc.study_time) >= 1;
```
其中第一个 INSERT 语句用于插入所有学习时间最长的课程,第二个 INSERT 语句用于插入所有有多门课程学习时间相同的用户学习的课程。
阅读全文