0
0
MySQLquery~20 mins

Subqueries with EXISTS in MySQL - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Subquery Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
query_result
intermediate
2:00remaining
Output of EXISTS with matching subquery
Given the tables employees and departments, what is the output of the following query?
SELECT e.name FROM employees e WHERE EXISTS (SELECT 1 FROM departments d WHERE d.id = e.department_id AND d.location = 'New York');
MySQL
CREATE TABLE employees (id INT, name VARCHAR(50), department_id INT);
CREATE TABLE departments (id INT, location VARCHAR(50));
INSERT INTO employees VALUES (1, 'Alice', 10), (2, 'Bob', 20), (3, 'Charlie', 10);
INSERT INTO departments VALUES (10, 'New York'), (20, 'Chicago');
ANo rows returned
BBob
CAlice, Bob, Charlie
DAlice, Charlie
Attempts:
2 left
💡 Hint
EXISTS returns true if the subquery finds any matching row.
📝 Syntax
intermediate
2:00remaining
Identify the syntax error in EXISTS subquery
Which option contains a syntax error in the use of EXISTS in this query?
SELECT name FROM employees WHERE EXISTS (SELECT * FROM departments WHERE id = department_id);
ASELECT name FROM employees WHERE EXISTS (SELECT * FROM departments WHERE id = department_id);
BSELECT name FROM employees WHERE EXISTS SELECT * FROM departments WHERE id = department_id;
CSELECT name FROM employees WHERE EXISTS (SELECT 1 FROM departments WHERE id = department_id);
DSELECT name FROM employees WHERE EXISTS (SELECT id FROM departments WHERE id = department_id);
Attempts:
2 left
💡 Hint
EXISTS requires a subquery enclosed in parentheses.
optimization
advanced
2:00remaining
Optimizing EXISTS subquery for performance
Which query is generally more efficient when checking existence of related rows in orders for each customers row?
A) SELECT c.id FROM customers c WHERE EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.id);

B) SELECT c.id FROM customers c JOIN orders o ON o.customer_id = c.id;
AQuery B is more efficient because it returns fewer rows.
BBoth queries have the same performance in all cases.
CQuery A is more efficient because EXISTS stops at first match per customer.
DQuery B is more efficient because JOIN is faster than EXISTS.
Attempts:
2 left
💡 Hint
EXISTS stops searching after finding the first matching row.
🔧 Debug
advanced
2:00remaining
Why does this EXISTS query return no rows?
Given the tables products and sales, why does this query return no rows?
SELECT p.name FROM products p WHERE EXISTS (SELECT 1 FROM sales s WHERE s.product_id = p.id AND s.quantity > 1000);

Data:
products: (1, 'Pen'), (2, 'Notebook')
sales: (1, 500), (2, 800)
ANo sales have quantity greater than 1000, so EXISTS is false for all products.
BThe subquery is missing a GROUP BY clause causing no matches.
CThe products table has no matching ids with sales table.
DThe query syntax is invalid causing no output.
Attempts:
2 left
💡 Hint
EXISTS returns true only if the subquery finds rows matching all conditions.
🧠 Conceptual
expert
3:00remaining
Understanding EXISTS with correlated subqueries
What does the following query return?
SELECT d.name FROM departments d WHERE EXISTS (SELECT 1 FROM employees e WHERE e.department_id = d.id AND e.salary > 70000);

Assuming departments and employees tables with relevant data.
ANames of departments that have at least one employee earning more than 70000.
BNames of all departments regardless of employee salaries.
CNames of departments with no employees earning more than 70000.
DNames of employees earning more than 70000.
Attempts:
2 left
💡 Hint
EXISTS checks if the subquery finds any employee in the department with salary > 70000.