🧠 What is EXISTS?
EXISTS is a logical operator in SQL that checks whether a subquery returns any rows.
- If the subquery returns at least one row, 
EXISTSevaluates to TRUE. - If the subquery returns no rows, 
EXISTSevaluates to FALSE. 
It’s often used in a WHERE clause to test for the existence of related data.
🧩 Syntax
SELECT column_name(s)
FROM table_name
WHERE EXISTS (
    SELECT 1
    FROM other_table
    WHERE condition
);
- The subquery can be any query that returns rows.
 - The 
SELECT 1inside is conventional — the actual column or value doesn’t matter, sinceEXISTSonly checks for row existence. 
📘 Example 1: Basic Use
Suppose you have two tables:
Customers
| CustomerID | CustomerName | 
|---|---|
| 1 | Alice | 
| 2 | Bob | 
| 3 | Carol | 
Orders
| OrderID | CustomerID | Amount | 
|---|---|---|
| 101 | 1 | 500 | 
| 102 | 3 | 300 | 
Now, find customers who have placed at least one order.
SELECT CustomerName
FROM Customers c
WHERE EXISTS (
    SELECT 1
    FROM Orders o
    WHERE o.CustomerID = c.CustomerID
);
✅ Result:
| CustomerName | 
|---|
| Alice | 
| Carol | 
(Bob has no orders, so he’s excluded.)
📗 Example 2: Using NOT EXISTS
Find customers who have never placed an order:
SELECT CustomerName
FROM Customers c
WHERE NOT EXISTS (
    SELECT 1
    FROM Orders o
    WHERE o.CustomerID = c.CustomerID
);
✅ Result:
| CustomerName | 
|---|
| Bob | 
📙 Example 3: Correlated Subquery with Condition
Find customers who have placed orders greater than $400:
SELECT CustomerName
FROM Customers c
WHERE EXISTS (
    SELECT 1
    FROM Orders o
    WHERE o.CustomerID = c.CustomerID
      AND o.Amount > 400
);
✅ Result:
| CustomerName | 
|---|
| Alice | 
⚖️ EXISTS vs IN
While both can test membership, they differ:
EXISTSstops searching once it finds a match (efficient for large datasets).INoften works better when you have a small, fixed list of values.
Example equivalence:
-- Using IN
SELECT CustomerName
FROM Customers
WHERE CustomerID IN (SELECT CustomerID FROM Orders);
-- Using EXISTS (equivalent)
SELECT CustomerName
FROM Customers c
WHERE EXISTS (SELECT 1 FROM Orders o WHERE o.CustomerID = c.CustomerID);
