# 内连接

# 特点

完全能够匹配上这个条件的数据查询出来。
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;