多表连接查询内连接

多表连接查询内连接

A  B

        A表.x列  B表.y列

        1. 找表之间的关系列

        2. 将两表放在join左右

        3. 将关联条件了放在on后面

        4. 将所有的查询条件进行罗列


        select A.m,B.n

        from 

        A表  join  B表

        on A表.x列=B表.y列

        where

        group by

        order by

        limit

  多表连接

    例子1:查询世界人口小于100人的国家名,城市名,国土面积

  select city.name,country.name ,country.surfacearea

  from

  city join country

  on city.countrycode = country.code

  where city.population<100;

例子2:查询oldguo老师,教的课程名称


  select teacher.`tname`,course.`cname`    查询老师的名字 和 课程的名字 关于oldguo的行

  from                                    从

  teacher join course                      teacher表和course表中

  on teacher.`tno` = course.`tno`          用teacher表的tno和course表的tno把两张表拼接

  where teacher.`tname`='oldguo';         

例子3:统计每门课程总成绩

          select course.cname,SUM(sc.score)

          from

          sc join course

          on sc.cno = course.cno

          group by  course.cname;

例子4. 查询oldguo老师教的学生姓名列表

SELECT teacher.tname,GROUP_CONCAT(student.sname)

        FROM

teacher JOIN course

ON teacher.tno = course.tno

        JOIN sc

ON course.cno = sc.cno

        JOIN student

ON sc.sno = student.sno

        WHERE teacher.tname='oldguo'

        GROUP BY teacher.tname;




例子5. 查询所有老师教的学生姓名列表

例子6. 查询oldboy老师教的不及格学生的姓名

例子7. 统计zhang3,学习了几门课

例子8. 查询zhang3,学习的课程名称有哪些?

例子9. 查询oldguo老师教的学生名.

例子10.查询oldguo所教课程的平均分数

例子11.每位老师所教课程的平均分,并按平均分排序

例子12.查询oldguo所教的不及格的学生姓名

例子13.查询所有老师所教学生不及格的信息

你可能感兴趣的:(多表连接查询内连接)