多表查詢練習 思路: 1.分析都在哪個表 2.分析條件 3.select先不要寫查詢啥內容 ,寫完條件後,在補充

1)查詢所有員工信息,查詢員工編號,員工姓名,工資,職務名稱,職務描述
	分析:
		1.emp   job
		2.條件: emp.job_id = job.id
		3.內連接查詢
		
		select 
			t1.id,   		--
			t1.ename,  		--
			t1.salary,  	--
			t2.jname,    	--
			t2.description  --
		from 
			emp t1, job t2
		where
			t1.job.id = t2.id;

2)查詢員工編號,員工姓名,工資,職務名稱,職務描述,部門名稱,部門位置
	分析: 
		1. emp  job 
		2.條件: emp.job_id = job.id and emp.dept_id = dept.id

		select 
			t1.id,   		--
			t1.ename,  		--
			t1.salary,  	--
			t2.jname,    	--
			t2.description,  --
			t3.dname,
			t3.loc
		from 
			emp t1, job t2. dept t3
		where 
			t1.job.id = t2.id and t1.dept_id = t3.id;

3)查詢員工姓名, 工資, 工資等級
	分析:
		1. emp   salarygrade
		2.條件: emp.salary >= salarygrade.losalary and emp.salary <= salarygrade.highsalary
		
		
		select
			t1.ename,
			t1.salary,
			t2.*
		from
			emp t1, salarygrade t2
			where t1.salary between t2.losalary and t2.highsalary;

4)查詢員工姓名,工資,職務名稱,職務描述,部門名稱,部門位置,工資等級
	分析:
		1.emp    dept  salary
		2.條件: emp.job_id = job.id and emp.dept_id = dept.id and emp.salary 
		
		
	select
		t1.ename,
		t1.salary,
		t2.jname,
		
		
	from emp t1, job t2, dept t3, salarygrade t4
	where
		t1.job_id = t2.id
		and t1.dept_id = t3.id
		and t1.salary between t4.losalary and t4.highsalary


5)查詢部門編號,部門名稱,部門位置,部門人數
	分析: 
		1.部門編號、部門名稱、部門位置 dept 表    部門人數emp表
		
		2.使用分組查詢,按照emp.dept_id完成分組,查詢count(id)
		
			得到哪個部門有多少人
			select 
				count(id)
			from 
				emp
			group by dept_id 
			
		3.使用子查詢將第2步的查詢結果和dept表進行關聯查詢
		
			select
				t1.id, t1.dname, t1.loc, t2.total
			from dept t1,
		
				(
					select 
						count(id) total
					from 
						emp
					group by dept_id 
			
				) t2
			where t1.id = t2.dept_id;
			
6)查詢所有員工的姓名及直接上級的姓名,沒有領導的員工也需要查詢
	分析:
		1.姓名emp 直接上級的姓名 emp  --自己關聯自己的動作(emp表的id和mgr是自關聯)
		2.條件emp.id = emp.mgr
		
			select 
				t1.ename, 
				t1.mgr, 
				t2.ename, 
				t2.id 
			from emp t1, emp t2
			where t1.mgr = t2.id;
		
		3.查詢t1的所有數據 和 交集數據--左外連接查詢
			select 
				t1.ename,
				t1.mgr,
				t2,id,
				t2.ename
			from emp t1
			left join emp t2   -- 左外連接搞定  沒有領導的員工也需要查詢
			on t1.mgr = t2.id
		
	

		

 

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