Bird
0
0

You have two tables:

hard📝 Application Q15 of 15
SQL - LEFT and RIGHT JOIN
You have two tables:

Orders:
order_id | customer_id
1 | 101
2 | 102
3 | 103

Customers:
customer_id | name
101 | John
102 | Jane

You want to list all orders with customer names, but show 'Unknown' if no customer found.

Which SQL query correctly achieves this?
ASELECT o.order_id, COALESCE(c.name, 'Unknown') AS customer_name FROM Orders o LEFT JOIN Customers c ON o.customer_id = c.customer_id;
BSELECT o.order_id, IFNULL(c.name, 'Unknown') AS customer_name FROM Orders o INNER JOIN Customers c ON o.customer_id = c.customer_id;
CSELECT o.order_id, c.name FROM Orders o RIGHT JOIN Customers c ON o.customer_id = c.customer_id;
DSELECT o.order_id, CASE WHEN c.name IS NULL THEN 'Unknown' ELSE c.name END FROM Orders o JOIN Customers c ON o.customer_id = c.customer_id;
Step-by-Step Solution
Solution:
  1. Step 1: Use LEFT JOIN to keep all orders

    LEFT JOIN keeps all orders even if no matching customer exists.
  2. Step 2: Replace NULL customer names with 'Unknown'

    Use COALESCE to show 'Unknown' when c.name is NULL.
  3. Final Answer:

    SELECT o.order_id, COALESCE(c.name, 'Unknown') AS customer_name FROM Orders o LEFT JOIN Customers c ON o.customer_id = c.customer_id; -> Option A
  4. Quick Check:

    LEFT JOIN + COALESCE handles missing customers [OK]
Quick Trick: Use LEFT JOIN with COALESCE to replace NULLs [OK]
Common Mistakes:
MISTAKES
  • Using INNER JOIN excludes orders without customers
  • Using RIGHT JOIN reverses table roles incorrectly
  • Forgetting to handle NULL customer names

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More SQL Quizzes