【LeetCode-Database181】超过经理收入的员工(where or join)
【摘要】
文章目录
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)