作者kop14922000 (MrDin)
看板Database
标题[SQL] 面试题目求解
时间Tue Sep 22 22:25:24 2020
前几天朋友传给我看的面试题目
想问一下该怎麽解
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://webptt.com/cn.aspx?n=bbs/Database/M.1600784726.A.11B.html
1F:→ konkonchou: 建议先去了解table join再回头看题目就会懂了09/23 02:49
3F:推 mathrew: 两题你会 join 就都可以解了09/23 05:18
join只有一个table 的话也能用吗?
那请问排名那题要怎麽让排名栏位显示出来呢?
※ 编辑: kop14922000 (42.73.216.236 台湾), 09/23/2020 14:08:24
4F:推 funk6478: 可以自己JOIN自己 薪资排名用row_number() 或RANK()09/23 14:31
5F:推 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
6F:推 funk6478: 第二题是要用课程left join教师left join群组09/24 10:18
7F:→ funk6478: 并且用case去写教师名称和群组名称为null的情况09/24 10:20
8F:→ funk6478: 还有你主管名称那题要把where改成on09/24 10:23
请问为什麽是用on 呢?
※ 编辑: kop14922000 (42.73.216.236 台湾), 09/24/2020 13:18:05
9F:→ 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
10F:→ funk6478: 如果是inner join可以直接from 多张表然後用where筛选条 09/24 22:24
11F:→ funk6478: 件 就像回文大大的写法 09/24 22:24
12F:→ funk6478: 条件应该是where a.b_id = b.id a表的主管id等於b表的id 09/24 22:27