首頁 > 軟體

MySQL基礎之多表查詢案例分享

2022-10-30 14:01:40

多表查詢案例

資料環境準備

create table salgrade(
grade int,
losal int,
hisal int
) comment '薪資等級表';
insert into salgrade values (1,0,3000);
insert into salgrade values (2,3001,5000);
insert into salgrade values (3,5001,8000);
insert into salgrade values (4,8001,10000);
insert into salgrade values (5,10001,15000);
insert into salgrade values (6,15001,20000);
insert into salgrade values (7,20001,25000);
insert into salgrade values (8,25001,30000);

在這個案例中,我們主要運用上面所講解的多表查詢的語法,完成以下的12個需求即可,而這裡主要涉及到的表就三張:emp員工表、dept部門表、salgrade薪資等級表 。

查詢員工的姓名、年齡、職位、部門資訊 (隱式內連線)

表: emp , dept

連線條件: emp.dept_id = dept.id

select e.name , e.age , e.job , d.name from emp e , dept d where e.dept_id = d.id;

查詢年齡小於30歲的員工的姓名、年齡、職位、部門資訊(顯式內連線)

表: emp , dept

連線條件: emp.dept_id = dept.id

select e.name , e.age , e.job , d.name from emp e inner join dept d on e.dept_id =d.id where e.age < 30;

查詢擁有員工的部門ID、部門名稱

表: emp , dept

連線條件: emp.dept_id = dept.id

select distinct d.id , d.name from emp e , dept d where e.dept_id = d.id;

查詢所有年齡大於40歲的員工, 及其歸屬的部門名稱; 如果員工沒有分配部門, 也需要展示出來(外連線)

表: emp , dept

連線條件: emp.dept_id = dept.id

select e.*, d.name from emp e left join dept d on e.dept_id = d.id where e.age >40 ;

查詢所有員工的工資等級

表: emp , salgrade

連線條件 : emp.salary >= salgrade.losal and emp.salary <= salgrade.hisal

-- 方式一
select e.* , s.grade , s.losal, s.hisal from emp e , salgrade s where e.salary >=
s.losal and e.salary <= s.hisal;
-- 方式二
select e.* , s.grade , s.losal, s.hisal from emp e , salgrade s where e.salary
between s.losal and s.hisal;

到此這篇關於MySQL基礎之多表查詢案例分享的文章就介紹到這了,更多相關MySQL多表查詢內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com