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)