SQL查詢各個部門薪水詳情以及其對應部門編號

2021-12-30 08:19:04 字數 1453 閱讀 9808

依然以牛客上面例題出發,主要是幫助自己記憶一下資料庫操作相關,免得一段時間不用又忘記了。

今天主要回顧sql語句中的連線相關知識。

一、sql join

sql join子句主要用於把來自兩個或多個表的行連線起來,基於這些表這件的共同字段。

最常見的sql join型別有sql inner join,sql left join,sql right join,sql full join。

二、sql inner join

sql inner join是最簡單的join,從多個表中返回滿足join條件的所有行。如果表中至少有乙個匹配,就返回行。返回的表是組合之後的乙個新錶。

inner join的語法是:

select column_name(s)

from table1

inner join table2

on table1.column_name=table2.column_name;

例子:牛客網中的例子:

查詢各個部門當前(to_date=』9999-01-01』)領導當前薪水詳情以及其對應部門編號dept_no

查詢各個部門當前(to_date=』9999-01-01』)領導當前薪水詳情以及其對應部門編號dept_no

create table dept_manager (

dept_no char(4) not null,

emp_no int(11) not null,

from_date date not null,

to_date date not null,

primary key (emp_no,dept_no));

create table salaries (

emp_no int(11) not null,

salary int(11) not null,

from_date date not null,

to_date date not null,

primary key (emp_no,from_date));

表1dept_manager的主鍵是emp_no,dept_no;領導編號,部門編號

表2salaries的主鍵是emp_no,from_date,領導編號和上任日期

那麼兩個表是基於領導編號連線起來的,只要領導編號有乙個匹配,就可以返回一行。

select salaries.emp_no, salaries.salary,salaries.from_date,salaries.to_date,dept_manager.dept_no

from salaries inner join dept_manager

on dept_manager.emp_no = salaries.emp_no

and salaries.to_date = 『9999-01-01』

and dept_manager.to_date = 『9999-01-01』

查詢當前薪水詳情以及部門編號dept no

查詢各個部門當前 to date 9999 01 01 領導當前薪水詳情以及其對應部門編號dept no create table dept manager dept no char 4 not null,emp no int 11 not null,from date date not null,...

查詢當前薪水詳情以及部門編號dept no

查詢各個部門當前 to date 9999 01 01 領導當前薪水詳情以及其對應部門編號dept no create table dept manager dept no char 4 not null,emp no int 11 not null,from date date not null,...

查詢當前薪水詳情以及部門編號dept no

題目內容 查詢當前薪水詳情以及部門編號dept no 結果 不通過 select salaries.dept manager.dept no from dept manager inner join salaries on salaries.emp no dept manager.emp no wh...