lintcode-1939 · 简历投递 I

举报
搞前端的半夏 发表于 2021/11/30 22:30:57 2021/11/30
【摘要】 大家好,我是半夏👴,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注➕ 点赞 👍 加我微信:frontendpicker,邀你进群,一起学习交流前端,成为更优秀的工程师~关注公众号:半夏话前端,了解更多前端知识!点我探索新世界! 描述students 表存储了所有学生的信息,包括学生 id 和学生姓名 namecompanies 表存储了所有公司的信息,包括公司 id 和公司名称...

大家好,我是半夏👴,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注➕ 点赞 👍 加我微信: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'
)
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。