查詢擁有兩個工作以上的員工姓名和公司名稱
1.擁有兩個工作(一個表:記錄員工和公司關係的表) 記得用group by having
2.員工名稱和公司名稱(記錄員工信息和公司信息的表)
用in
where —— in(select——子表)
select e.EmpName,c.CmpName from EMPLOYEE e
inner join WORKS w on(e.EmpNo=w.EmpNo)
inner join COMPANY c on (c.CmpNo=w.CmpNo)
where e.EmpNo in(
select EmpNo From WORKS
group by EmpNo
having count(CmpNo)>=2
)
where exist (select 子表)
不能用exist
exist:先求出where前的主錶行:再從主表中比對子表中的信息
看子表中有沒有(Exist?)
有就顯示,沒有就不顯示
應用
統計只上一門課的老師,並且輸出老師的名字以及課程信息
用in
兩張表: 課程表和教師表
SELECT T.TName,C.* From TEACHERS T
LEFT JOIN COURSES C ON(T.TNo=C.TNo)
WHERE T.TNo IN(SELECT TNo FROM COURSES
GROUP BY TNo
HAVING COUNT(*)>1)
結果