select * from beauty g ,boys b
where g.boyfrientd_id = b.id;
(2)不等值连接: 例: 查询员工的工资和工资级别
select ename,j.grade_level from emp e,job_grades j
where e.SAL BETWEEN j.lowest_sal
and j.highest_sal
注意: where 后面的条件不适用 = 连接的; 就是不等值连接
自连接: 将一个表的分成两个表进行关联查询
-- 查询员工对应的 领导的姓名
select 领导.empno , 领导.ename,员工.empno ,员工.ename
from emp 员工 ,emp 领导 where 员工.mgr = 领导.empno
2. sql99版本:
内连接: inner
等值连接: 表A inner join 表B on 共有条件 不等值连接: 自连接:
外连接: outer
应用场景: 用于查询一个表中有,另一个表中没有记录
左外连接: left join on 右外连接: right join on 全外连接: (mysql不支持) full join on 交叉连接: cross join 作用:为了得到笛卡尔chengj积现象 cross join on 过滤 跟 内连接结果一样 特点: (1)外连接的查询结果为主表的所有记录 如果从表中 没有和它匹配的,则显示null 如果从表中 有和它匹配的 ,则显示匹配的值 外连接的查询结果 = 内连接结果 + 主表中有从表中没有的记录
select ename,sal,job from emp where mgr =
(select empno from emp where ename = 'KING');
-- 或者
select ename,sal,job from emp where mgr in
(select empno from emp where ename = 'KING');
2.查询出king所在部门的部门号\部门名称\部门人数
select e.deptno,dname,count(e.deptno) from emp e inner join dept d
on e.deptno = d.deptno group by e.deptno;