背景
从上节题目构建的课程数据库中提取每个用户最爱学的课程数据。
右边桌面是实验楼的服务器,服务器中的 MySQL 还没有启动,请注意 MySQL 的 root 账户默认密码为空。启动 MySQL 后会发现已经有了一个 shiyanlou 的数据库,访问的用户名为 shiyanlou,密码为 shiyanlou,shiyanlou 数据库中包含三个表:
user:1000 名实验楼用户数据,包含两列,用户 ID 和用户名
course:10 门实验楼课程数据,包含两列,课程 ID 和课程名
usercourse:100 条用户课程学习记录,包含四列,ID,用户 ID,课程 ID 和学习时间(分钟)
目标
查询并将查询结果创建一个新表,任务完成后满足以下要求:
MySQL 服务处于运行状态
新的表名称为 favorite,包含四列:id(主键),user_name(用户名),course_name(课程名),study_time(学习时间)
favorite 表中存储的是所有在 usercourse 表中有学习记录的用户学习时间最长的课程,如果有多门课程学习时间相同,则都存入该表
解题过程
create table favorite
(
id int(11) primary key not null auto_increment,
user_name varchar(20) ,
course_name varchar(50),
study_time int(11)
)
insert into favorite(user_name, course_name, study_time)
select a.name user_name, b.name course_name, c.time study_time
from user a,course b,
(select user_id, course_id, max(study_time) time
from usercourse
group by user_id
)c
where a.id=c.user_id and b.id=c.course_id;
总结
注意建favorite表时要参考user表、course表以及usercourse表的结构
参考博文:
http://www.cnblogs.com/prayer21/p/6029694.html