要点概述

  • SQL语句中的多表查询

一、例一:

有如下表格:

     表1:

          image

     表2:

          image

           那么接下来开始提要求,要求查出表1的“姓名”列和表二中相对应的“班主任”列;首先找出他们之间存在的联系,可以看出他们有一个联系就是“班号”这一列。

代码如下:

select 姓名,班主任 from
        学生表,班级表 where
        学生表.班号=班级表.班号

二、例二:     

有如下表格:

          image          image

          image

要求:直查看“姓名”所对应的“班主任”以及“系主任”

       select 姓名,班主任,系主任 from 学生表

                inner join 班级表 on 学生表.班号=班级表.班号

                inner join 系表 on 班级表.系号=系表.系号

结果:

        image

三、例三

进阶阶段:

查询学生学习哪些课程,课时数和成绩是多少,课程的任课教员和职称

学生表:

image

班级表:

 

课程表:

image

教师表:

image

系表:

image

选课表:

image

说一下,如果要说有什么难度的话,可能就是耗点时间找一下各表之间的关系了

select 学生表.姓名 as 学生姓名,课程名,课时,成绩 from 学生表
         inner join 班级表 on 学生表.班号=班级表.班号
         inner join 系表 on 班级表.系号=系表.系号
         inner join 教师表 on 系表.系名=教师表.系名
         inner join 课程表 on 教师表.教师编号=课程表.任课教师编号
         inner join 选课表 on 课程表.课程编号=选课表.课程编号 order by 1

结果:

image

本文完…

 

后记

在这里,鄙人诚恳的向大家道歉,拿上面举得例子来说,其中inner join 函数的用法,小弟老是搞不明白,网上搜了很多东西,虽然写的也是很好,但描述的比较抽象,我也只是会用了而已,并不能说完全搞透了,小弟下去一定搞懂,让那些逻辑思维教差的同志也能很容易的就明白,或许这才是我写博客的理由吧,谢谢大家的支持