SQL Left Outer Join Tutorial with Example: Employee Bonus
- 时间:2020-10-05 13:15:44
- 分类:网络文摘
- 阅读:132 次
SQL Left Outer Join can be illustrated by the following:

sql-left-outer-join
where the query will take everything from left table and those fields from the right table. Let’s take a look at the following question as a left-outer-join (which is known as left-join) example.
Employee Bonus
Select all employee’s name and bonuses whose bonus is less than $1000.
SQL Schema
Create table If Not Exists Employee (EmpId int, Name varchar(255), Supervisor int, Salary int)
Create table If Not Exists Bonus (EmpId int, Bonus int)
Truncate table Employee
insert into Employee (EmpId, Name, Supervisor, Salary) values ('3', 'Brad', 'None', '4000')
insert into Employee (EmpId, Name, Supervisor, Salary) values ('1', 'John', '3', '1000')
insert into Employee (EmpId, Name, Supervisor, Salary) values ('2', 'Dan', '3', '2000')
insert into Employee (EmpId, Name, Supervisor, Salary) values ('4', 'Thomas', '3', '4000')
Truncate table Bonus
insert into Bonus (EmpId, Bonus) values ('2', '500')
insert into Bonus (EmpId, Bonus) values ('4', '2000')
Table:Employee
+-------+--------+-----------+--------+ | empId | name | supervisor| salary | +-------+--------+-----------+--------+ | 1 | John | 3 | 1000 | | 2 | Dan | 3 | 2000 | | 3 | Brad | null | 4000 | | 4 | Thomas | 3 | 4000 | +-------+--------+-----------+--------+empId is the primary key column for this table.
Table: Bonus
+-------+-------+ | empId | bonus | +-------+-------+ | 2 | 500 | | 4 | 2000 | +-------+-------+empId is the primary key column for this table.
Example ouput:
+-------+-------+ | name | bonus | +-------+-------+ | John | null | | Dan | 500 | | Brad | null | +-------+-------+
The SQL of left-join will return all the employees and their bonuses, however, some employees don’t have bonuses – as they are not shown in the Bonus table. Therefore, the result field (bonus) will be empty for those employees. Thus, we have to explicitly use IS (or IS NOT) operator to check for nullness.
SELECT
Employee.name, Bonus.bonus
FROM
Employee
LEFT JOIN
Bonus ON Employee.empid = Bonus.empid
WHERE
bonus < 1000 OR bonus IS NULL;
–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:如何从感官上辨别枸杞的真假和质量优劣 红酒对人体有保健作用但并非人人适宜 食品安全:盘点有毒的11种常见食物 鸡蛋的蛋黄和蛋清到底哪个更有营养? 揭秘减肥食品菇类营养价值抗癌降血脂 冬季感冒多喝姜茶可治疗外感风寒感冒 消除身体疲劳可多吃七种带“香”的食物 饮食与健康:维生素B2的补充无需刻意 女性急躁易发怒可能与维生素缺乏有关系 冬天吃水果,究竟应该注意什么问题?
- 评论列表
-
- 添加评论