数据库(十一)

不等值连接在关键字on后匹配条件中除了=以外关系运算符来实现不等条件(> >= < <= !=)

--》查询员工编号大于其领导编号的每个员工的姓名、职位、领导姓名

select e.name,e.job,e.empno,m.ename,m.empno from t_employee e inner join t_employee m on e.mgr=m.empno;

select e.name,e.job,e.empno,m.ename,m.empno from t_employee e inner join t_employee m on e.mgr=m.empno and e.mgr>m.empno;

select e.name,e.job,e.empno,m.ename,m.empno from t_employee e, t_employee m where e.mgr=m.empno and e.mgr>m.empno;

外连接查询

语法:select f1...... from table1 left/right outer join table2 on 条件;
查询结果至少是一个表的所有记录

左外联:
select table1 left outer join table2
table1为驱动表    table2为匹配表
查询出的结果是table1驱动表的所有记录
右外联:
select table1 right outer join table2
table1为匹配表   table2为驱动表 
查询出的结果是table2驱动表的所有记录

--》查询每个员工的姓名、职位和领导的姓名内连接的方式
select e.name,e.job,m.ename from t_employee e inner join t_employee m on e.mgr=m.empno;
查询结果为13条数据,king为大小boss,没有上级领导,所以king这条数据没用显示出来

左外联查询:
select e.ename,e.job,m.ename from t_employee e left outer join t_employee m on e.mgr=m.empno;
t_employee表中14数据都在部门表中有对应
insert into t_employee values(7999,'xiaogong','clerk',7782,19810312,5200,null,50);
查询每个员工的编号、姓名、职位、部门名称、位置
右外联查询


select e.deptno,e.name,e.job,d.dname,d.loc from t_dept d right outer join t_employee e on d.deptno=e.deptno;








发布了90 篇原创文章 · 获赞 37 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_25368751/article/details/102958282