MySQL多表查询

什么是多表查询?

若一个查询涉及到两个以上的表 ,我们称为多表查询或连接查询,而且需要指定连接条件,连接条件可以使用=、>、<等运算符,当使用=时称为等值连接,其他称为不等值连接。

指定连接条件有两种方式:

  • 在where子句中指定
  • 在from子句中指定(外连接|内连接)

两种查询方式

方式1:在where子句中指定连接条件

where后面直接+连接条件

#查询学生的姓名和该学生课程号为005的课程的成绩
#where查询
select studentName, score
from student,grade
where student.studentid=grade.studentid and courseid='005';

执行结果:

MySQL多表查询_第1张图片

方式2:在from子句中指定连接条件

外连接查询

格式:from  表1  left|right  outer  join  表2  on  连接条件

#查询学生的姓名和该学生课程号为005的课程的成绩
select studentName,score
from student left outer join grade
on student.studentid=grade.studentid and courseid='005'; 
#左连接查询作用:保留左边表的所有数据,如果右边表连接失败了,使用null填充
#这里outer可不写
#同理可推出右连接的作用

执行结果:

MySQL多表查询_第2张图片

内连接查询

格式:from  表1  inner  join  表2  on  连接条件

#查询学生的姓名和该学生课程号为005的课程的成绩
select studentName,score
from student inner join grade
on student.studentid=grade.studentid and courseid='005'; 
#效果和在where子句中指定条件相似

执行结果:

MySQL多表查询_第3张图片

 

你可能感兴趣的:(sql,mysql,多表查询)