A JOIN in SQL is a way to combine rows from two or more tables based on a related column between them.
Click to reveal answer
beginner
What does an INNER JOIN do?
An INNER JOIN returns only the rows where there is a match in both tables based on the join condition.
Click to reveal answer
beginner
Explain LEFT JOIN in SQL.
A LEFT JOIN returns all rows from the left table and the matched rows from the right table. If there is no match, the result will have NULLs for the right table's columns.
Click to reveal answer
intermediate
What is the difference between LEFT JOIN and RIGHT JOIN?
LEFT JOIN returns all rows from the left table and matching rows from the right. RIGHT JOIN returns all rows from the right table and matching rows from the left.
Click to reveal answer
intermediate
What is a FULL OUTER JOIN?
A FULL OUTER JOIN returns all rows when there is a match in one of the tables. It combines the results of LEFT JOIN and RIGHT JOIN, showing all rows from both tables with NULLs where there is no match.
Click to reveal answer
Which JOIN returns only matching rows from both tables?
ALEFT JOIN
BINNER JOIN
CRIGHT JOIN
DFULL OUTER JOIN
✗ Incorrect
INNER JOIN returns only rows where the join condition matches in both tables.
What does a LEFT JOIN return?
AOnly rows matching in both tables
BAll rows from the right table and matching rows from the left
CAll rows from the left table and matching rows from the right
DAll rows from both tables
✗ Incorrect
LEFT JOIN returns all rows from the left table and matched rows from the right table.
If you want all rows from both tables, which JOIN should you use?
AINNER JOIN
BLEFT JOIN
CRIGHT JOIN
DFULL OUTER JOIN
✗ Incorrect
FULL OUTER JOIN returns all rows from both tables, matching where possible.
Which JOIN can result in NULL values in the result set?
AB and D
BLEFT JOIN
CINNER JOIN
DRIGHT JOIN
✗ Incorrect
LEFT JOIN and RIGHT JOIN can include rows with NULLs where there is no matching row in the other table.
What is the main purpose of using JOINs in SQL?
ATo combine rows from two or more tables
BTo delete rows from tables
CTo create new tables
DTo update data in a table
✗ Incorrect
JOINs are used to combine rows from two or more tables based on related columns.
Describe the differences between INNER JOIN, LEFT JOIN, RIGHT JOIN, and FULL OUTER JOIN.
Think about which table's rows are always included and where NULLs appear.
You got /4 concepts.
Explain a real-life situation where you might use a LEFT JOIN in a database query.
Consider a list of people and their activities where some people might not have done the activity.
You got /4 concepts.
Practice
(1/5)
1. What does an INNER JOIN do in SQL?
easy
A. Returns all rows from the right table, and matched rows from the left
B. Returns all rows from the left table, and matched rows from the right
C. Returns only rows with matching values in both tables
D. Returns all rows from both tables, matching where possible
Solution
Step 1: Understand INNER JOIN behavior
An INNER JOIN returns rows where there is a match in both tables based on the join condition.
Step 2: Compare with other join types
LEFT JOIN returns all from left, RIGHT JOIN all from right, FULL JOIN all from both. INNER JOIN only matched rows.
Final Answer:
Returns only rows with matching values in both tables -> Option C
Quick Check:
INNER JOIN = matched rows only [OK]
Hint: INNER JOIN keeps only matching rows from both tables [OK]
Common Mistakes:
Confusing INNER JOIN with LEFT JOIN
Thinking INNER JOIN returns unmatched rows
Mixing up LEFT and RIGHT JOIN definitions
2. Which of the following is the correct syntax for a LEFT JOIN in SQL?
easy
A. SELECT * FROM table1 LEFT JOIN table2 USING (id);
B. SELECT * FROM table1 JOIN LEFT table2 ON table1.id = table2.id;
C. SELECT * FROM table1 LEFT OUTER JOIN table2 WHERE table1.id = table2.id;
D. SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id;
Solution
Step 1: Recall LEFT JOIN syntax
The correct syntax is: SELECT columns FROM table1 LEFT JOIN table2 ON condition;
Step 2: Check each option
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id; matches correct syntax. SELECT * FROM table1 JOIN LEFT table2 ON table1.id = table2.id; has wrong order. SELECT * FROM table1 LEFT OUTER JOIN table2 WHERE table1.id = table2.id; uses WHERE instead of ON. SELECT * FROM table1 LEFT JOIN table2 USING (id); uses correct syntax with parentheses.
Final Answer:
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id; -> Option D
Quick Check:
LEFT JOIN syntax = FROM table1 LEFT JOIN table2 ON condition [OK]
Hint: LEFT JOIN uses ON, not WHERE, for join condition [OK]
Common Mistakes:
Using WHERE instead of ON for join condition
Incorrect order of JOIN keywords
Confusing USING with ON without matching columns
3. Given two tables: Employees(emp_id, name, dept_id) Departments(dept_id, dept_name) What will this query return?
SELECT e.name, d.dept_name FROM Employees e INNER JOIN Departments d ON e.dept_id = d.dept_id;
medium
A. All employees with their department names, only if dept_id matches
B. All employees, even if they have no department
C. All departments with employees, including departments with no employees
D. All employees and departments, matched or not
Solution
Step 1: Analyze INNER JOIN condition
The INNER JOIN returns rows where Employees.dept_id matches Departments.dept_id.
Step 2: Understand result rows
Only employees with a matching department will appear, showing employee name and department name.
Final Answer:
All employees with their department names, only if dept_id matches -> Option A
Quick Check:
INNER JOIN filters to matching dept_id rows [OK]
Hint: INNER JOIN shows only matching rows from both tables [OK]
Common Mistakes:
Assuming employees without departments appear
Confusing INNER JOIN with LEFT JOIN
Thinking unmatched departments appear
4. Identify the error in this SQL join query:
SELECT * FROM Orders o LEFT JOIN Customers c ON o.customer_id = c.id WHERE c.country = 'USA';
medium
A. The WHERE clause filters out unmatched rows, defeating LEFT JOIN purpose
B. The ON clause should use = instead of LIKE
C. LEFT JOIN should be RIGHT JOIN here
D. Missing GROUP BY clause for aggregation
Solution
Step 1: Understand LEFT JOIN with WHERE filter
LEFT JOIN keeps all rows from Orders, matching Customers or NULL if no match.
Step 2: Effect of WHERE on joined table
WHERE c.country = 'USA' removes rows where c is NULL (no match), so unmatched rows are excluded, negating LEFT JOIN effect.
Final Answer:
The WHERE clause filters out unmatched rows, defeating LEFT JOIN purpose -> Option A
Quick Check:
WHERE on joined table filters NULLs, breaks LEFT JOIN [OK]
Hint: Use ON for join filters, WHERE filters after join [OK]
Common Mistakes:
Filtering joined table in WHERE instead of ON
Confusing LEFT JOIN with RIGHT JOIN
Adding unnecessary GROUP BY
5. You want to list all products and their suppliers, including products without suppliers and suppliers without products. Which join should you use?
hard
A. LEFT JOIN
B. FULL OUTER JOIN
C. RIGHT JOIN
D. INNER JOIN
Solution
Step 1: Understand join requirements
We want all products and all suppliers, even if no matching row exists in the other table.
Step 2: Match join type to requirement
INNER JOIN excludes unmatched rows. LEFT or RIGHT JOIN include unmatched rows from one side only. FULL OUTER JOIN includes unmatched rows from both tables.
Final Answer:
FULL OUTER JOIN -> Option B
Quick Check:
FULL OUTER JOIN returns all rows from both tables [OK]
Hint: Use FULL OUTER JOIN to include unmatched rows from both tables [OK]
Common Mistakes:
Choosing INNER JOIN which excludes unmatched rows
Using LEFT or RIGHT JOIN which include only one side unmatched
Confusing FULL OUTER JOIN syntax
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.