Customer Table
| Id | FirstName | LastName |
|---|---|---|
| 1 | Ozgur | Ozturk |
| 2 | Youssef | Medi |
| 3 | Henry | Tai |
Order Table
| Id | CustomerId | Amount |
|---|---|---|
| 1 | 2 | 123.50 |
| 2 | 3 | 14.80 |
SELECT * FROM Customer WHERE EXISTS (
SELECT * FROM Order WHERE Order.CustomerId=Customer.Id
)
Result
| Id | FirstName | LastName |
|---|---|---|
| 2 | Youssef | Medi |
| 3 | Henry | Tai |
SELECT * FROM Customer WHERE NOT EXISTS (
SELECT * FROM Order WHERE Order.CustomerId = Customer.Id
)
Result
| Id | FirstName | LastName |
|---|---|---|
| 1 | Ozgur | Ozturk |
EXISTS, IN and JOIN could sometime be used for the same result, however, they are not equals :
EXISTS should be used to check if a value exist in another tableIN should be used for static listJOIN should be used to retrieve data from other(s) table(s)