# 内连接
# 特点
完全能够匹配上这个条件的数据查询出来。
A,B两张表连接查询,AB两张表没有主次关系,是平等的。
# 等值连接
SQL92语法:
select up.id uId, qpd.id qId from user_profile up, question_practice_detail qpd where up.device_id = qpd.device_id;
SQL99语法:
[inner] 单词可以省略
select up.id uId, qpd.id qId from user_profile up [inner] join question_practice_detail qpd on up.device_id = qpd.device_id;
SQL92 语法缺点:结构不清晰,表的连接条件和后期进一步的筛选条件,都放到了 where 后边。
SQL99 语法有点:表连接的条件是独立的,连接之后如果还需要进一步筛选,可以继续添加 where 条件。
# 非等值连接
条件不是一个等量关系,称为非等值连接
案例:找出每个员工的薪资等级,要求显示员工名,薪资,薪资等级
select
e.ename, e.sal, s.grade
from
emp e
inner join
salgrade s
on
e.sal between s.losal and s.hisal;
# 自连接
一张表看作两张表
案例:查询员工的上级领导,要求显示员工名和对应的领导名
select
a.ename as '员工名', b.ename as '领导名'
from
emp a
inner join
emp b
on
a.mgr = b.empno;