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
ColumnType
idINT
nameTEXT
Table:orders
ColumnType
idINT
customer_idINT

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:Charlie
Explanation:

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 Grace
Explanation:

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 Jack
Explanation:

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

Ready to solve this problem?

Practice solo or challenge other developers in a real-time coding battle!