SQL高階 十四 使用兩次join例項

2021-10-01 13:35:07 字數 1162 閱讀 1605

題目:

查詢所有員工的last_name和first_name以及對應的dept_name,也包括暫時沒有分配部門的員工

create table departments (

dept_no char(4) not null,

dept_name varchar(40) not null,

primary key (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));

解析:

運用兩次left join連線巢狀

1、第一次left join連線employees表與dept_emp表,得到所有員工的last_name和first_name以及對應的dept_no,也包括暫時沒有分配部門的員工

2、第二次left join連線上表與departments表,即連線dept_no與dept_name,得到所有員工的last_name和first_name以及對應的dept_name,也包括暫時沒有分配部門的員工

結果:

select e.last_name, e.first_name, dp.dept_name from employees as e

left join dept_emp as d on e.emp_no = d.emp_no

left join departments as dp on d.dept_no = dp.dept_no;

對陣列兩次foreach的使用陷阱

對陣列兩次foreach的使用陷阱 對同乙個陣列兩次foreach備註 這個問題是做小論壇的時候碰見的 如果單純的對乙個陣列兩次foreach是沒什麼問題的 輸出 如果在第一次foreach的時候,加了引用呢?輸出 第二次的結果是 a b b,並不是陣列的值 也就是說這種情況下,foreach迴圈最...

js邏輯非同時兩次使用 null

同時使用兩個邏輯非操作符,實際上就會模擬boolean 轉型函式的行為。其中,第乙個邏輯非操作符會基於無論什麼運算元返回乙個布林值,而第二個邏輯非操作則對該布林值求反,於是就得到了這個值真正對應的布林值。當然最終結果與對這個值使用boolean 函式效果相同。所以其實個人認為,寫法就是boolean...

連續使用兩次fread 錯誤和fread返回值

今天在寫乙個 要把一幀的buffer讀入到檔案,因為有neon和opencl兩種不同的實現所以需要讀取檔案兩次,如下 1 file file 2int i 0 3 inter block size gpu rs block size 4 file fopen name,rb 5if file nul...