Description
Write a SQL query to find all customers who have never placed an order. Return customer names. **Output columns (in order):** name
Table:
customers| Column | Type |
|---|---|
| id | INT |
| name | TEXT |
Table:
orders| Column | Type |
|---|---|
| id | INT |
| customer_id | INT |
Examples
Input:
CREATE TABLE customers (id INT, name TEXT); CREATE TABLE orders (id INT, customer_id INT); INSERT INTO customers VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie'); INSERT INTO orders VALUES (1, 1), (2, 2);Output:
CharlieExplanation:
Alice (id=1) has an order, Bob (id=2) has an order, but Charlie (id=3) has no orders, so Charlie is returned.
Input:
CREATE TABLE customers (id INT, name TEXT); CREATE TABLE orders (id INT, customer_id INT); INSERT INTO customers VALUES (1, 'David'), (2, 'Emma'), (3, 'Frank'), (4, 'Grace'); INSERT INTO orders VALUES (1, 2), (2, 3), (3, 3);Output:
David
GraceExplanation:
David (id=1) and Grace (id=4) have never placed any orders, while Emma (id=2) has one order and Frank (id=3) has two orders
Input:
CREATE TABLE customers (id INT, name TEXT); CREATE TABLE orders (id INT, customer_id INT); INSERT INTO customers VALUES (1, 'Henry'), (2, 'Ivy'), (3, 'Jack'); INSERT INTO orders VALUES ();Output:
Henry
Ivy
JackExplanation:
The orders table has no data (empty INSERT), meaning no customer has placed any order. Therefore, all three customers (Henry, Ivy, and Jack) are returned since none of them have any associated orders.
Constraints
- •
Use LEFT JOIN or subquery