A RIGHT JOIN returns all rows from the right table and the matching rows from the left table. If there is no match, the result is NULL on the left side.
Click to reveal answer
beginner
How is RIGHT JOIN different from LEFT JOIN?
RIGHT JOIN returns all rows from the right table, while LEFT JOIN returns all rows from the left table. Both include matching rows from the other table and NULLs where no match exists.
Click to reveal answer
beginner
Write a simple RIGHT JOIN query example.
SELECT * FROM employees RIGHT JOIN departments ON employees.department_id = departments.id; This returns all departments and their employees, including departments with no employees.
Click to reveal answer
beginner
What happens if there is no matching row in the left table for a RIGHT JOIN?
The columns from the left table will contain NULL values for those rows in the result.
Click to reveal answer
intermediate
Can RIGHT JOIN be replaced by LEFT JOIN?
Yes, by switching the order of the tables and using LEFT JOIN, you can get the same result as RIGHT JOIN.
Click to reveal answer
What does a RIGHT JOIN return?
AAll rows from the left table and matching rows from the right table
BAll rows from both tables
COnly matching rows from both tables
DAll rows from the right table and matching rows from the left table
✗ Incorrect
RIGHT JOIN returns all rows from the right table and matching rows from the left table, filling NULLs where no match exists.
If a row in the right table has no matching row in the left table, what will the LEFT table columns show in a RIGHT JOIN?
ANULL values
BEmpty strings
CThe matching values
DZeroes
✗ Incorrect
When no match exists in the left table, the LEFT table columns show NULL in the result.
Which SQL keyword is used to combine rows from two tables based on a related column?
AWHERE
BSELECT
CJOIN
DGROUP BY
✗ Incorrect
JOIN is used to combine rows from two or more tables based on a related column.
How can you get the same result as a RIGHT JOIN using a LEFT JOIN?
AYou cannot get the same result
BSwitch the order of the tables and use LEFT JOIN
CUse FULL JOIN
DUse INNER JOIN instead
✗ Incorrect
Switching the order of tables and using LEFT JOIN produces the same result as RIGHT JOIN.
Which of these is true about RIGHT JOIN?
AIt returns all rows from the right table
BIt returns all rows from the left table
CIt returns only rows with matches in both tables
DIt excludes rows with NULL values
✗ Incorrect
RIGHT JOIN returns all rows from the right table, regardless of matches.
Explain in your own words what a RIGHT JOIN does and give a simple example.
Think about which table's rows are always included.
You got /5 concepts.
How can you rewrite a RIGHT JOIN query using a LEFT JOIN? Describe the steps.
Consider swapping the tables in the FROM clause.
You got /4 concepts.
Practice
(1/5)
1. What does a RIGHT JOIN do in SQL?
easy
A. Returns all rows from the right table and matching rows from the left table.
B. Returns all rows from the left table and matching rows from the right table.
C. Returns only rows that have matching values in both tables.
D. Returns all rows from both tables, matching where possible.
Solution
Step 1: Understand the direction of RIGHT JOIN
A RIGHT JOIN returns all rows from the right table regardless of matches in the left table.
Step 2: Identify matching rows from the left table
It includes matching rows from the left table and fills NULL where no match exists.
Final Answer:
Returns all rows from the right table and matching rows from the left table. -> Option A
Quick Check:
RIGHT JOIN = all right table rows + matched left rows [OK]
Hint: RIGHT JOIN keeps all right table rows, left table may have NULLs [OK]
Common Mistakes:
Confusing RIGHT JOIN with LEFT JOIN
Thinking RIGHT JOIN returns only matching rows
Assuming RIGHT JOIN returns all rows from left table
2. Which of the following is the correct syntax for a RIGHT JOIN in MySQL?
easy
A. SELECT * FROM table1 RIGHT OUTER JOIN table2 WHERE table1.id = table2.id;
B. SELECT * FROM table1 JOIN RIGHT table2 ON table1.id = table2.id;
C. SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.id;
D. SELECT * FROM table1 RIGHT JOIN table2 USING id;
Solution
Step 1: Check standard RIGHT JOIN syntax
The correct syntax is SELECT ... FROM table1 RIGHT JOIN table2 ON condition;.
Step 2: Validate each option
SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.id; uses correct syntax with ON clause. SELECT * FROM table1 JOIN RIGHT table2 ON table1.id = table2.id; has wrong keyword order. SELECT * FROM table1 RIGHT OUTER JOIN table2 WHERE table1.id = table2.id; uses WHERE instead of ON. SELECT * FROM table1 RIGHT JOIN table2 USING id; uses invalid syntax (parentheses required: USING (id)).
Final Answer:
SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.id; -> Option C
Quick Check:
RIGHT JOIN syntax = FROM table1 RIGHT JOIN table2 ON condition [OK]
Hint: RIGHT JOIN needs ON clause, USING only if columns match exactly [OK]
Common Mistakes:
Using WHERE instead of ON for join condition
Incorrect keyword order like JOIN RIGHT
Confusing RIGHT JOIN with RIGHT OUTER JOIN (both valid but syntax matters)
3. Given these tables:
Employees id | name 1 | Alice 2 | Bob
Departments id | dept_name 2 | Sales 3 | Marketing
What is the result of: SELECT Employees.name, Departments.dept_name FROM Employees RIGHT JOIN Departments ON Employees.id = Departments.id;
medium
A. [('Bob', 'Sales')]
B. [('Alice', NULL), ('Bob', 'Sales')]
C. [('Alice', NULL), ('Bob', 'Sales'), (NULL, 'Marketing')]
D. [('Bob', 'Sales'), (NULL, 'Marketing')]
Solution
Step 1: Identify RIGHT JOIN behavior with given tables
RIGHT JOIN keeps all rows from Departments (right table). Departments have ids 2 and 3.
Step 2: Match Employees.id to Departments.id
Employees with id=2 is Bob, matches Sales. No employee with id=3, so NULL for name and Marketing for dept_name.
Final Answer:
[('Bob', 'Sales'), (NULL, 'Marketing')] -> Option D
Quick Check:
RIGHT JOIN keeps all right rows, unmatched left = NULL [OK]
Hint: RIGHT JOIN shows all right rows, NULL for unmatched left [OK]
Common Mistakes:
Expecting all employees instead of all departments
Including unmatched left rows only
Confusing LEFT JOIN with RIGHT JOIN results
4. Consider this query:
SELECT a.id, b.value FROM tableA a RIGHT JOIN tableB b ON a.id = b.id;
It returns no rows even though tableB has data. What is the most likely cause?
medium
A. The join condition is incorrect or mismatched column names.
B. RIGHT JOIN does not return any rows if left table is empty.
C. RIGHT JOIN requires WHERE clause to filter rows.
D. The query syntax is invalid and causes an error.
Solution
Step 1: Understand RIGHT JOIN behavior
RIGHT JOIN returns all rows from right table even if left table has no matching rows.
Step 2: Analyze why no rows returned
If no rows appear, likely the join condition a.id = b.id does not match any rows due to wrong column names or data mismatch.
Final Answer:
The join condition is incorrect or mismatched column names. -> Option A
Quick Check:
No rows means join condition mismatch [OK]
Hint: No rows? Check join condition and column names first [OK]
Common Mistakes:
Assuming RIGHT JOIN needs WHERE clause
Thinking RIGHT JOIN returns no rows if left table empty
Believing syntax error causes no rows instead of error
5. You have two tables:
Orders order_id | customer_id 1 | 101 2 | 102
Customers customer_id | name 101 | John 103 | Alice
You want to list all customers and their orders if any. Which query using RIGHT JOIN gives the correct result?
hard
A. SELECT Customers.name, Orders.order_id FROM Customers RIGHT JOIN Orders ON Customers.customer_id = Orders.customer_id;
B. SELECT Customers.name, Orders.order_id FROM Orders RIGHT JOIN Customers ON Orders.customer_id = Customers.customer_id;
C. SELECT Customers.name, Orders.order_id FROM Orders LEFT JOIN Customers ON Orders.customer_id = Customers.customer_id;
D. SELECT Customers.name, Orders.order_id FROM Customers LEFT JOIN Orders ON Customers.customer_id = Orders.customer_id;
Solution
Step 1: Identify which table is right to keep all customers
We want all customers, so Customers must be the right table in RIGHT JOIN.
Step 2: Check join condition and table order
SELECT Customers.name, Orders.order_id FROM Orders RIGHT JOIN Customers ON Orders.customer_id = Customers.customer_id; uses Orders RIGHT JOIN Customers ON matching customer_id, so all Customers appear with matching Orders or NULL.
Final Answer:
SELECT Customers.name, Orders.order_id FROM Orders RIGHT JOIN Customers ON Orders.customer_id = Customers.customer_id; -> Option B
Quick Check:
RIGHT JOIN keeps all right table rows (Customers) [OK]
Hint: Put table with all rows as right table in RIGHT JOIN [OK]
Common Mistakes:
Swapping table order and losing all customers
Using LEFT JOIN instead of RIGHT JOIN incorrectly
Confusing join condition direction
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.