一张表(A)中的一条记录可以对应另一张表(B)中的多条记录;
另一张表(B)中的一条记录只能对应一张表(A)中的一条记录。
//查询所有姓张的学生的id,name和所在班级name
这里如果外键可以为空的话就需要使用左外连接,才可以查到。
内连接
//假如外键不可以为空
select s.id,s.name,c.name as className
from tbl_student s
join tbl_class c on s.class_id=c.id//假如外键不可以为空
where s.name like 'z%'
左外连接
//假如外键可以为空
select s.id,s.name,c.name as className
from tbl_student s
left outer join tbl_class c on s.class_id=c.id//假如外键可以为空
where s.name like 'z%'
内连接:查询所有符合条件的数据,并且要求结果在两张表中都有相对应的记录
左外连接:查询左侧表中所有符合条件的数据,即使在右侧表中没有相对应的记录
如果外键不能为空,优先使用内连接;
如果外键可以为空,
--假如只需要查询那些在另一张表中有相对应的记录,使用内连接
--假如需要查询左侧表中所有符合条件的记录,使用左外连接.
--假如需要查询右侧表中所有符合条件的记录,使用右外连接.
//如果外键为空,两张表,就会有没有对应的数据,会有匹配不到的数据,没关联的数据,要是要查到那些没有关联,但是符合条件的数据,
就需要使用外连接