看板 Database 關於我們 聯絡資訊
前幾天朋友傳給我看的面試題目 想問一下該怎麼解 https://i.imgur.com/f35ZGU3.jpg
https://i.imgur.com/l3QTMWX.jpg
https://i.imgur.com/im298fL.jpg
下面是我的解法 https://i.imgur.com/MUzqupK.jpg
第二大題看不懂題目的意思 第三大題第一題最後面主管id 不知道要怎麼跟id 連在一起 還要把主管id 改成主管姓名 初步想法是 select ID, name, title, dpt, sex, sort, b_id as主管姓名 from EET001 後面就不知 道怎麼寫了 第二題紅字部分是不確定的部分,應該是不能直接寫一個資料表沒有的欄位出來 第三題最簡單沒什麼問題 請各位高手幫我看看指點指點 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.216.236 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1600784726.A.11B.html
konkonchou: 建議先去瞭解table join再回頭看題目就會懂了09/23 02:49
mathrew: 兩題你會 join 就都可以解了09/23 05:18
join只有一個table 的話也能用嗎? 那請問排名那題要怎麼讓排名欄位顯示出來呢? ※ 編輯: kop14922000 (42.73.216.236 臺灣), 09/23/2020 14:08:24
funk6478: 可以自己JOIN自己 薪資排名用row_number() 或RANK()09/23 14:31
paranoia5201: 這些都很基本,晚點寫答案給你。09/24 00:24
自己目前寫出來是這樣 https://i.imgur.com/9cM2RHs.png
第二題說實話還是看不太懂什麼意思QQ 排名那題用了rank( ) over 應該沒問題了 找主管名字那題不確定是不是這樣寫 總覺得怪怪的 ※ 編輯: kop14922000 (42.73.216.236 臺灣), 09/24/2020 04:52:26 ※ 編輯: kop14922000 (42.73.216.236 臺灣), 09/24/2020 04:53:46 ※ 編輯: kop14922000 (42.73.216.236 臺灣), 09/24/2020 04:55:05
funk6478: 第二題是要用課程left join教師left join群組09/24 10:18
funk6478: 並且用case去寫教師名稱和群組名稱為null的情況09/24 10:20
funk6478: 還有你主管名稱那題要把where改成on09/24 10:23
請問為什麼是用on 呢? ※ 編輯: kop14922000 (42.73.216.236 臺灣), 09/24/2020 13:18:05
funk6478: 因為join的用法就是 A join B on A.key = B.key啊...09/24 13:51
對欸==沒注意到,那如果join 直接拿掉呢?就可以用where了嗎?,另一位大大的答案是直 接用where 沒寫join where a.id=b.id(我不了解為何這邊是b.id而不是b. b_id ※ 編輯: kop14922000 (42.73.216.236 臺灣), 09/24/2020 15:07:45 ※ 編輯: kop14922000 (42.73.216.236 臺灣), 09/24/2020 15:10:37
funk6478: 如果是inner join可以直接from 多張表然後用where篩選條 09/24 22:24
funk6478: 件 就像回文大大的寫法 09/24 22:24
funk6478: 條件應該是where a.b_id = b.id a表的主管id等於b表的id 09/24 22:27