+-------------+---------+
|Column Name |Type|+-------------+---------+
| employee_id | int || name | varchar |+-------------+---------+
employee_id is the columnwithuniquevaluesfor this table.
Eachrowof this table indicates the name of the employee whose ID is employee_id.
Table: `Salaries`+-------------+---------+
|Column Name |Type|+-------------+---------+
| employee_id | int || salary | int |+-------------+---------+
employee_id is the columnwithuniquevaluesfor this table.
Eachrowof this table indicates the salary of the employee whose ID is employee_id.
Write a solution to report the IDs of all the employees with missing information. The information of an employee is missing if:
The employee’s name is missing, or
The employee’s salary is missing.
Return the result table ordered by employee_idin ascending order.
Input:
Employees table:+-------------+----------+| employee_id | name |+-------------+----------+|2| Crew ||4| Haven ||5| Kristian |+-------------+----------+Salaries table:+-------------+--------+| employee_id | salary |+-------------+--------+|5|76071||1|22517||4|63539|+-------------+--------+Output:
+-------------+| employee_id |+-------------+|1||2|+-------------+Explanation:
Employees 1,2,4, and 5 are working at this company.The name of employee 1is missing.The salary of employee 2is missing.
An employee has missing information if their name or salary is missing. This can be found by checking for employees present in one table but not the other, or with null values after a full outer join.
SELECT employee_id
FROM Employees
WHERE name ISNULLUNIONSELECT employee_id
FROM Salaries
WHERE salary ISNULLUNIONSELECT e.employee_id
FROM Employees e
LEFTJOIN Salaries s ON e.employee_id = s.employee_id
WHERE s.salary ISNULLUNIONSELECT s.employee_id
FROM Salaries s
LEFTJOIN Employees e ON s.employee_id = e.employee_id
WHERE e.name ISNULLORDERBY employee_id;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT employee_id
FROM Employees
WHERE name ISNULLUNIONSELECT employee_id
FROM Salaries
WHERE salary ISNULLUNIONSELECT e.employee_id
FROM Employees e
LEFTJOIN Salaries s ON e.employee_id = s.employee_id
WHERE s.salary ISNULLUNIONSELECT s.employee_id
FROM Salaries s
LEFTJOIN Employees e ON s.employee_id = e.employee_id
WHERE e.name ISNULLORDERBY employee_id;