I want to find the users who haven't make any order
My idea is that, Get all user ids and substract the unique ids in orders table
How could I convert it in MySQL query syntax.
mysql> select * from users;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
+------+
3 rows in set (0.00 sec)
mysql> select * from orders;
+------+---------+--------+
| id | user_id | amount |
+------+---------+--------+
| 1 | 1 | 10.00 |
| 1 | 2 | 5.00 |
+------+---------+--------+
2 rows in set (0.00 sec)
The idea is to make make a left join between users (left table) and orders table.
Then from this joined table you need to filter those records which don't have any order. So in this case orders.id would be NULL.
SELECT
users.id
FROM users
LEFT JOIN orders
ON users.id = orders.user_id
WHERE orders.id IS NULL
Visual Understanding:
SQL Joins explained better here.
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments