I have two MySQL tables :
+-----------+ +-----------+
| id.Table1 | | id.Table2 |
+-----------+ +-----------+
| 1 | | 2 |
| 2 | | 3 |
| 3 | | 4 |
| 4 | +-----------+
| 5 |
+-----------+
I want to get a query with this result:
+-----------+
| id.Table1 |
+-----------+
| 1 |
| 5 |
+-----------+
How do I do it?
One way is to use NOT IN
clause:
SELECT ID FROM TABLE1 WHERE ID NOT IN (SELECT ID FROM TABLE2)
TRY NOT EXISTS
SELECT ID FROM TABLE1 as a WHERE NOT EXISTS (SELECT ID FROM TABLE2 as b where a.ID=b.ID)
You can achieve the result by using LEFT JOIN
with NULL
check. The working query is:
SELECT T1.Id
FROM Table1 T1
LEFT JOIN Table2 T2 ON T2.Id = T1.Id
WHERE T2.Id IS NULL