首页 > 数据库技术 > 详细

mysql_联表查询和自查询

时间:2020-02-17 22:38:38      阅读:92      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

查询参加考试的同学(学号,姓名,科目名,分数)

思路:
1.分析需求,分析查询字段来自那些表,(连接查询)
2.明确使用那种连接查询?7种中间选择合适的
判断条件: 学生表的studentNo=成绩表中studentNo

 

1 select s.studentNo,studentName,
2 subjectName,studentGrades
3 from student  s             
4 inner join grades  g
5 on s.studentNo=g.studentNo   --没有后续的话换成where也可以

 

inner join----如果表中至少有一个匹配,就返回信息
left join------会从join的左侧表中返回所有值,即使右表没有匹配
right join-----会从join的右侧表中返回所有值,即使左表没有匹配

1 --Right join
2 select  s.studentNo,studentName,
3 subjectName,studentGrades
4 from  student  s             
5 right  join grades  g
6 on  s.studentNo=g.studentNo
1 --Left join
2 select  s.studentNo,studentName,
3 subjectName,studentGrades
4 from  student  s             
5 left  join grades  g
6 on  s.studentNo=g.studentNo

查询缺考试的同学(学号,姓名,科目名,分数)

1 select  s.studentNo,studentName,
2 subjectName,studentGrades
3 from  student  s             
4 left  join grades  g
5 on  s.studentNo=g.studentNo
6 where studentGrades is null

查询参加考试的同学信息:(学号,学生姓名,科目名,分数)

1 select  s.studentNo,studentName,
2 subjectName,studentGrades
3 from student s
4 right join grades g
5 on g.studentNo=s.studentNo
6 inner join subject sub
7 on g.subjectNo=sub.subjectNo

查询参加数据库-1考试的同学信息:(学号,学生姓名,科目名,分数)

1 select s.studentNo,studentName,
2 subjectName,studentGrades
3 from student s
4 inner join grades g
5 on s.studentNo=g.studentNo
6 inner join subject sub
7 on g.subjectNo=sub.subjectNo
8 where subjetName=`数据库-1`

 

 

自查询:把一张表看成两张一样的表
查询父子信息:

1 select a.categoryName as `父栏目` , 
2 b.categoryName as `子栏目`
3 from category as a, 
4 category as b
5 where 
6 a.categoryid=b.pid

 

 

查询所有的课程的名称以及对应的任课老师姓名

分析需求:我们需要用到course和teacher表:既需要得到课程名称又要拿到老师姓名,然后看表结构模型,我们可以知道

course有外键字段teacher_id指向teacher表id,那么我们就可以用内连接inner join将两张表拼接起来然后取其字段course.cname

和teacher.tname即可得到我们想要的数据,SQL语句如下:

1 SELECT
2     cname,
3     tname 
4 FROM
5     teacher
6     INNER JOIN course ON course.teacher_id = teacher.tid;

 

mysql_联表查询和自查询

原文:https://www.cnblogs.com/zhsv/p/12322780.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!