【數據庫】查找所有員工的last_name和first_name以及對應部門編號dept_no

題目描述
查找所有員工的last_name和first_name以及對應部門編號dept_no,也包括展示沒有分配具體部門的員工
CREATE TABLE dept_emp (
emp_no int(11) NOT NULL,
dept_no char(4) NOT NULL,
from_date date NOT NULL,
to_date date NOT NULL,
PRIMARY KEY (emp_no,dept_no));
CREATE TABLE employees (
emp_no int(11) NOT NULL,
birth_date date NOT NULL,
first_name varchar(14) NOT NULL,
last_name varchar(16) NOT NULL,
gender char(1) NOT NULL,
hire_date date NOT NULL,
PRIMARY KEY (emp_no));

思路:
兩張表的查詢問題,需要連接,但這裏的關鍵點是包括沒有分配具體部門的員工,那我的理解是employees表中的ast_name和first_name都需要展示,然後再把dept_emp表中有部門的值展示出來就好,它不是一個可以影響employees表的條件,所有不能用內連接,應該用左(右)連接

代碼:

select employees.last_name,employees.first_name,dept_emp.dept_no
from employees left join dept_emp
on employees.emp_no = dept_emp.emp_no;

輸出描述
在這裏插入圖片描述
知識點:
左右連接的使用其實非常簡單,下面三句總結:

1、哪個表要全部展示,就看"沒有"“全部”這樣的字修飾哪個表.

2、如果想用左連接讓該表全部展示,那麼就將他放在join的左邊,如果想用右連接讓該表全部展示,那麼就將他放在join的右邊.

3、如果表在join的左邊,我想然他全部展示,就用左連接,如果表在join的右邊,我想讓他全部展示,就用右連接

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