【LeetCode-Database181】超过经理收入的员工(where or join)

举报
野猪佩奇996 发表于 2022/01/23 00:46:44 2022/01/23
【摘要】 文章目录 1.题目2.法一(where)3.法二(join)4.reference 1.题目 2.法一(where) 从表a和b中数据进行查找(笛卡尔积,如上栗子是16种情况),再用...

1.题目

在这里插入图片描述

2.法一(where)

从表a和b中数据进行查找(笛卡尔积,如上栗子是16种情况),再用where的2个筛选条件。
——题目要求是超过经理收入的员工所以从这个a.Salary > b.Salary条件可以得知a是员工b是经理,a.ManagerId = b.Id可以知道经理对应哪些员工。

# Write your MySQL query statement below
SELECT
    a.Name as 'Employee'
FROM
    Employee as a,
    Employee as b
where
    a.ManagerID=b.ID
        AND a.Salary>b.Salary

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.法二(join)

inner join内连接(又叫等值连接),inner可以省略掉,表示取两个表的“交集”;左连接和则是取左边的所有集合,右连接则是取右边的所有集合(联想概率统计里面的文氏图即可)。
另外的where的和法一一毛一样(其实法二和法一差不多。。)
select…as 可理解为:用作、作为,一般是重命名列名或者表名

# Write your MySQL query statement below
select a.name as Employee
from Employee as a inner join Employee as b 
where a.managerid=b.id
  and a.salary>b.salary

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

借用leetcode上“一只猪的题解”的题解里的图:
在这里插入图片描述

4.reference

SQL中连接(JOIN)的用法
SQL SELECT完整语法

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/115407552

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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