不等值連接在關鍵字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;