子查詢和連線表

2021-08-15 14:16:34 字數 2144 閱讀 8595

有如下兩張表:部門表和教師表

1、查詢出招生部門所有男老師姓名(子查詢放在where語句中)

select tname, deptno from teacher where gender='男'

and deptno in (select deptno from dept where dname='招生部');

select tname,deptno from teacher t inner

join dept p

on p.deptno=t.deptno where gender='男'

and dname='招生部'

2、查詢出所有老師的姓名和部門(子查詢放在列中)

select tname,deptno,(select dname from dept where 

dept.deptno=teacher.deptno) dname from teacher;

3、查詢出所有在招生部,人力部的老師列表

select tname,deptno from teacher where deptno in 

(select deptno from dept where dept.deptno=teacher.deptno

and dname in ('招生部','人力部'));

連線查詢:

表連線的執行順序:先執行where條件,再連線;

內連線,左外連線和右外連線的區別:

內連線:滿足on連線條件的資料才顯示出來;

左外連線:即使不滿足on連線條件,也會把所有左邊的資料顯示出來;

右外連線同理;

例如:查詢出所有老師的姓名和部門

1、使用內連線

select t.tname,d.dname from teacher t inner

join dept d on

t.deptno=d.deptno;

這樣查詢得到的結果如下

得到71條資料;

2、使用左外連線

得到77條資料;

自連線:示例

查詢出所有老師的姓名及其導師

select t1.tname as

'老師' ,t2.tname as 『導師』 from teacher t1

inner

join teacher t2 on t1.mgrno=t2.tno;

因為是兩張相同表進行連線,所以叫自連線;

三表連線:示例

查詢出所有老師的姓名,部門及其導師

select t1.tname as

'老師' ,t2.tname as 『導師』 dept.dname from

teacher t1 inner

join teacher t2 on t1.mgrno=t2.tno

left

join dept on t1.deptno=dept.deptno;

SQL 子查詢和表連線

一條搜尋語句他的過濾條件 於另乙個搜尋語句的select結果 select cust name,cust contact from customers where cust id in select cust id from orders where order num in select orde...

連線查詢和子查詢(部分)

連線查詢 連線查詢是關係型資料庫的主要特點,是區別其他型別的資料庫的乙個標誌!連線查詢又分為 內連線 外連線 平時我們的查詢一般是 select s.name,m.mark from student s,mark m where s.id m.studentid上面是一般的待條件查詢意思是將兩個表中...

子查詢 聯合查詢和連線查詢

查詢中巢狀查詢。如 select from select cname,cid from tblclass union select dname,did from department as t1 order by cname 將多個結果集合並成乙個結果集,前提是列數相同,並且相應的列的型別相同。判斷...