Challenge - 5 Problems
Outer Join Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate1:30remaining
Purpose of Outer Joins
Why do we use outer joins in SQL instead of just inner joins?
Attempts:
2 left
💡 Hint
Think about what happens when some data in one table has no match in the other.
✗ Incorrect
Outer joins allow us to keep all rows from one table and fill in NULLs for missing matches in the other table. Inner joins only keep rows with matches in both tables.
❓ query_result
intermediate2:00remaining
Result of LEFT OUTER JOIN
Given these tables:
Employees:
id | name
1 | Alice
2 | Bob
3 | Carol
Departments:
id | dept_name
1 | Sales
3 | HR
What is the result of this query?
SELECT Employees.name, Departments.dept_name
FROM Employees LEFT OUTER JOIN Departments ON Employees.id = Departments.id;
Employees:
id | name
1 | Alice
2 | Bob
3 | Carol
Departments:
id | dept_name
1 | Sales
3 | HR
What is the result of this query?
SELECT Employees.name, Departments.dept_name
FROM Employees LEFT OUTER JOIN Departments ON Employees.id = Departments.id;
SQL
SELECT Employees.name, Departments.dept_name FROM Employees LEFT OUTER JOIN Departments ON Employees.id = Departments.id;
Attempts:
2 left
💡 Hint
LEFT OUTER JOIN keeps all rows from the left table.
✗ Incorrect
The LEFT OUTER JOIN returns all employees. For Bob, there is no matching department, so dept_name is NULL.
📝 Syntax
advanced1:30remaining
Correct Syntax for FULL OUTER JOIN
Which of the following SQL queries correctly uses FULL OUTER JOIN to combine two tables 'A' and 'B' on column 'id'?
Attempts:
2 left
💡 Hint
FULL OUTER JOIN syntax requires the keywords in a specific order.
✗ Incorrect
The correct syntax is 'FULL OUTER JOIN' with ON clause specifying the join condition. Other options have wrong keyword order or missing ON.
❓ optimization
advanced2:00remaining
Optimizing Queries with Outer Joins
You have a large table 'Orders' and a smaller table 'Customers'. You want to list all customers and their orders, including customers with no orders. Which join and indexing strategy is best for performance?
Attempts:
2 left
💡 Hint
Think about which table should be on the left and which column to index for fast lookups.
✗ Incorrect
LEFT OUTER JOIN from Customers to Orders ensures all customers appear. Indexing Orders.customer_id speeds up matching orders lookup.
🔧 Debug
expert2:30remaining
Why does this OUTER JOIN query return fewer rows than expected?
Given tables:
Products(id, name)
Sales(product_id, quantity)
Query:
SELECT Products.name, Sales.quantity
FROM Products LEFT OUTER JOIN Sales ON Products.id = Sales.product_id
WHERE Sales.quantity > 10;
Why might this query return fewer rows than the total number of products?
Products(id, name)
Sales(product_id, quantity)
Query:
SELECT Products.name, Sales.quantity
FROM Products LEFT OUTER JOIN Sales ON Products.id = Sales.product_id
WHERE Sales.quantity > 10;
Why might this query return fewer rows than the total number of products?
Attempts:
2 left
💡 Hint
Consider how WHERE conditions affect rows with NULLs from outer joins.
✗ Incorrect
The WHERE clause filters after the join, so rows with no matching Sales (NULL quantity) are excluded. To keep all products, the condition should be in the JOIN or use IS NULL checks.