lintcode-1939 · 简历投递 I
大家好,我是半夏👴,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注➕ 点赞 👍 加我微信:frontendpicker,邀你进群,一起学习交流前端,成为更优秀的工程师~关注公众号:半夏话前端,了解更多前端知识!点我探索新世界!
描述
students 表存储了所有学生的信息,包括学生 id 和学生姓名 name
companies 表存储了所有公司的信息,包括公司 id 和公司名称 name
recording 表存储了所有的简历投递数据,包括学生 id (student_id) 和 公司 id (company_id)
请编写 SQL 语句,查询所有没有向阿里巴巴 (Alibaba) 公司投递过简历的学生姓名。
表定义 1: students (学生表)
| 列名 | 类型 | 注释 |
|---|---|---|
| id | int unsigned | 主键 |
| name | varchar | 学生姓名 |
表定义 2: companies (公司表)
| 列名 | 类型 | 注释 |
|---|---|---|
| id | int unsigned | 主键 |
| name | varchar | 公司名称 |
| address | varchar | 公司地址 |
表定义 3: recording (记录表)
| 列名 | 类型 | 注释 |
|---|---|---|
| id | int unsigned | 主键 |
| delivery_date | date | 投递日期 |
| company_id | int | 公司 id |
| student_id | int | 学生 id |
样例
样例一:
表内容 1: students
| id | name |
|---|---|
| 1 | Da Ming |
| 2 | Amy |
| 3 | Mike |
| 4 | Park |
| 5 | George |
表内容 2: companies
| id | name | address |
|---|---|---|
| 1 | Alibaba | Hang Zhou |
| 2 | NetEase | Guang Zhou |
| 3 | Baidu | Bei Jing |
| 4 | Tencent | Shen Zhen |
表内容 3: recording
| id | delivery_date | company_id | student_id |
|---|---|---|---|
| 1 | 2020-01-08 | 3 | 4 |
| 2 | 2020-02-06 | 4 | 5 |
| 3 | 2020-03-12 | 1 | 1 |
| 4 | 2020-04-07 | 1 | 4 |
在运行你的 SQL 语句之后,表应返回:
| name |
|---|
| Amy |
| Mike |
| George |
样例二:
表内容 1: students
| id | name |
|---|---|
| 1 | Da Ming |
| 2 | Amy |
| 3 | Mike |
| 4 | Park |
| 5 | George |
表内容 2: companies
| id | name | address |
|---|---|---|
| 1 | Alibaba | Hang Zhou |
| 2 | NetEase | Guang Zhou |
| 3 | Baidu | Bei Jing |
| 4 | Tencent | Shen Zhen |
表内容 3: recording
| id | delivery_date | company_id | student_id |
|---|---|---|---|
| 1 | 2020-01-08 | 1 | 2 |
| 2 | 2020-02-06 | 1 | 5 |
| 3 | 2020-03-12 | 1 | 1 |
| 4 | 2020-04-07 | 1 | 4 |
在运行你的 SQL 语句之后,表应返回:
| name |
|---|
| Mike |
题解
第一步:left join companies c
on r.company_id=c.id
where c.name=‘Alibaba’
左连接company,查出名称为alibaba的公司id,
第二步:根据上面查到的id 找到所有投递的学生
第三步:根据找到的学生的,反选出没有投递的学生。
select
name
from students
where name not in (
select
s.name
from students s
left join recording r
on s.id=r.student_id
left join companies c
on r.company_id=c.id
where c.name='Alibaba'
)
- 点赞
- 收藏
- 关注作者
评论(0)