MySQL刷題 牛客網 Day2

2021-10-03 02:01:24 字數 2624 閱讀 6924

今天繼續刷題!

獲取所有員工當前的manager

獲取所有員工當前的manager,如果當前的manager是自己的話結果不顯示,當前表示to_date=『9999-01-01』。

結果第一列給出當前員工的emp_no,第二列給出其manager對應的manager_no。

create

table

`dept_emp`

(`emp_no`

int(11)

notnull

,`dept_no`

char(4

)not

null

,`from_date`

date

notnull

,`to_date`

date

notnull

,primary

key(

`emp_no`

,`dept_no`))

;create

table

`dept_manager`

(`dept_no`

char(4

)not

null

,`emp_no`

int(11)

notnull

,`from_date`

date

notnull

,`to_date`

date

notnull

,primary

key(

`emp_no`

,`dept_no`))

;

首先要理解這兩張表,第一張表dept_emp是儲存員工的資訊,emp_no是指員工編號,dept_no是指部門編號;第二張表dept_manager是儲存經理的資訊,dept_no是指部門編號,emp_no是指經理的編號。

其次來分析過濾條件,輸出結果是兩列且為一一對應,這其中一定需要內聯結,聯結條件即為員工所在部門和經理所在部門必須一致,即de.dept_no = dm.dept_no.再用where來限制輸出,即日期,這裡注意兩個表中的日期都需要限定,即de.to_date = 『9999-01-01』 and dm.to_date =『9999-01-01』.

還有最後乙個條件「如果當前的manager是自己的話結果不顯示」,即de.emp_no <> dm.emp_no

輸入如下:

select de.emp_no, dm.emp_no as manager_no 

from dept_emp as de

inner

join dept_manager as dm

on de.dept_no = dm.dept_no

where dm.to_date =

'9999-01-01'

and de.to_date =

'9999-01-01'

and de.emp_no <> dm.emp_no

獲取所有部門中當前員工薪水最高的相關資訊

獲取所有部門中當前員工薪水最高的相關資訊,給出dept_no, emp_no以及其對應的salary

create

table

`dept_emp`

(`emp_no`

int(11)

notnull

,`dept_no`

char(4

)not

null

,`from_date`

date

notnull

,`to_date`

date

notnull

,primary

key(

`emp_no`

,`dept_no`))

;create

table

`salaries`

(`emp_no`

int(11)

notnull

,`salary`

int(11)

notnull

,`from_date`

date

notnull

,`to_date`

date

notnull

,primary

key(

`emp_no`

,`from_date`))

;

首先給出題解:

select d.dept_no, d.emp_no,

max(s.salary)

from dept_emp as d

inner

join salaries as s

on d.emp_no = s.emp_no

and d.to_date = s.to_date

where d.to_date =

'9999-01-01'

group

by d.dept_no

這道題對我來說的點在於過濾條件,即時間一致以及d.to_date = s.to_date

牛客21天刷題 day 2

牛客contents 2.小易喜歡的單詞 題目圓的半徑平方為s,求座標系裡在這個圓周上面的整數座標點有幾個 輸入253 輸出12 0 思路和解答 math.sqrt 4 2.0 type math.sqrt 4 float math.sqrt 4 int math.sqrt 4 true 注意ran...

MySQL刷題 牛客網 Day4

直接來看題!對所有員工的薪水按照salary進行按照1 n的排名 對所有員工的當前 to date 9999 01 01 薪水按照salary進行按照1 n的排名,相同salary並列且按照emp no公升序排列 create table salaries emp no int 11 notnull...

牛客網刷題day3

1.傳輸介質是通訊網路中傳送方和接收方之間的 a 通路。a.物理 b.邏輯 c.虛擬 d.數字 2.廣域網覆蓋的地方範圍從幾十公里到幾千公里,它的通訊子網主要使用 b a.報文交換技術 b.分組交換技術 c.檔案交換技術 d.電路交換技術 解析 廣域網的通訊子網主要使用分組交換技術。廣域網是由許多交...