zoukankan      html  css  js  c++  java
  • 实验楼第二期比赛第二题

    背景

    从上节题目构建的课程数据库中提取每个用户最爱学的课程数据。
    右边桌面是实验楼的服务器,服务器中的 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 表中有学习记录的用户学习时间最长的课程,如果有多门课程学习时间相同,则都存入该表

    解题过程

    1. create table favorite
    2. (
    3. id int(11) primary key not null auto_increment,
    4. user_name varchar(20) ,
    5. course_name varchar(50),
    6. study_time int(11)
    7. )
    8. insert into favorite(user_name, course_name, study_time)
    9. select a.name user_name, b.name course_name, c.time study_time
    10. from user a,course b,
    11. (select user_id, course_id, max(study_time) time
    12. from usercourse
    13. group by user_id
    14. )c
    15. where a.id=c.user_id and b.id=c.course_id;

    总结

    注意建favorite表时要参考user表、course表以及usercourse表的结构

    参考博文:

    http://www.cnblogs.com/prayer21/p/6029694.html





  • 相关阅读:
    MySQL_02之增删改查、PHP数据库操作
    MySQL_01之MySQL数据库基础
    git SSH key生成步骤
    Angular路由的定义和使用
    angular ng-href小测试
    AngularJs 内置指令
    一些移动端浏览器的兼容性Bug
    angular之隐藏显示,CSS类和样式
    一个用于展示的网站
    git extensions stash和stash pop
  • 原文地址:https://www.cnblogs.com/yldf/p/9bfe622c44e85d4801c18f651e710272.html
Copyright © 2011-2022 走看看