SQL: IN// EXISTS having

查詢擁有兩個工作以上的員工姓名和公司名稱
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)

結果
結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章