The table salesperson holds the salesperson information. Every salesperson has a sales_id and a name.
Table:company
+---------+--------+------------+
| com_id | name | city |
+---------+--------+------------+
| 1 | RED | Boston |
| 2 | ORANGE | New York |
| 3 | YELLOW | Boston |
| 4 | GREEN | Austin |
+---------+--------+------------+
The table company holds the company information. Every company has a com_id and a name.
The table orders holds the sales record information, salesperson and customer company are represented by sales_id and com_id.
output
+------+
| name |
+------+
| Amy |
| Mark |
| Alex |
+------+
Solution 1: using join
SELECT s.nameFROM orders o JOIN company c ON o.com_id = c.com_id AND c.name ='RED' RIGHT JOIN salesperson s ON o.sales_id = s.sales_idWHERE o.sales_id IS NULL;
Solution 2: using subquery
SELECT nameFROM salespersonWHERE sales_id NOT IN ( SELECT distinct sales_id FROM orders WHERE com_id = (SELECT com_id FROM company WHERE name ='RED'));