SQL Left Outer Join Tutorial with Example: Employee Bonus
- 时间:2020-10-05 13:15:44
- 分类:网络文摘
- 阅读:87 次
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) —
推荐阅读:Backpacking Problem Variation via Greedy Approach: How Many Appl Sliding Window to Get Equal Substrings Within MaxCost Budget Beginner’s Guide to Python’ Enumerate Function Algorithms to Determine Unique Number of Occurrences The Next Permutation Algorithm in C++ (std::next_permutation) Binary Tree Zigzag Level Order Traversal Algorithms using DFS an Work-Life Balance Tips to Keep You Happy as a Blogger Huffington Post Launches New Contributor System And Bloggers Are 5 Tips for a Smooth Transition When Moving Your Blog to a New Ho Jerusalem To Host The Biggest Travel Blogging Event In The World
- 评论列表
-
- 添加评论