Bird
Raised Fist0
MySQLquery~5 mins

Why subqueries nest queries in MySQL - Quick Recap

Choose your learning style10 modes available
Recall & Review
beginner
What is a subquery in SQL?
A subquery is a query nested inside another query. It runs first and its result is used by the outer query.
Click to reveal answer
beginner
Why do subqueries nest queries?
Subqueries nest queries to break complex problems into smaller steps. The inner query finds data that the outer query uses.
Click to reveal answer
beginner
How does nesting queries help in real life?
Nesting queries helps when you want to filter data based on results from another query, like finding customers who bought a specific product.
Click to reveal answer
intermediate
Can subqueries return multiple rows?
Yes, subqueries can return multiple rows or a single value depending on how they are written and used.
Click to reveal answer
intermediate
What is the order of execution when using subqueries?
The inner subquery runs first to produce results. Then the outer query uses those results to complete the final output.
Click to reveal answer
What does a subquery do in SQL?
ACreates a new database
BDeletes data from a table
CChanges the structure of a table
DRuns inside another query and provides data for it
Why do we use nested queries?
ATo backup data
BTo speed up the database server
CTo break complex tasks into smaller steps
DTo create new tables automatically
Which runs first in a nested query?
AThe inner subquery
BThe outer query
CBoth run at the same time
DDepends on the database version
Can a subquery return multiple rows?
ANo, only one row is allowed
BYes, it can return one or many rows
COnly if the table has less than 10 rows
DOnly in MySQL
What is a real-life example of using a subquery?
AFinding customers who bought a specific product
BChanging a password
CDeleting old files
DCreating a new user account
Explain why subqueries are used to nest queries in SQL.
Think about how breaking a big task into smaller steps helps.
You got /4 concepts.
    Describe a simple real-life scenario where nesting queries with subqueries is helpful.
    Imagine you want to find people who did something specific.
    You got /4 concepts.

      Practice

      (1/5)
      1. Why do we use subqueries in MySQL?
      SELECT * FROM employees WHERE department_id IN (SELECT id FROM departments WHERE location = 'NY');
      easy
      A. To nest one query inside another and use its results
      B. To speed up the database server hardware
      C. To create new tables automatically
      D. To change the database schema

      Solution

      1. Step 1: Understand subquery usage

        The inner query SELECT id FROM departments WHERE location = 'NY' finds department IDs in New York.
      2. Step 2: Use subquery results in outer query

        The outer query selects employees whose department_id matches those IDs from the subquery.
      3. Final Answer:

        To nest one query inside another and use its results -> Option A
      4. Quick Check:

        Subqueries = nested queries using results [OK]
      Hint: Subqueries let you use one query's results inside another [OK]
      Common Mistakes:
      • Thinking subqueries change database structure
      • Confusing subqueries with hardware upgrades
      • Believing subqueries create tables automatically
      2. Which of the following is the correct syntax for a subquery in MySQL?
      easy
      A. SELECT * FROM table1 WHERE id = SELECT id FROM table2 WHERE condition;
      B. SELECT * FROM table1 WHERE id == (SELECT id FROM table2 WHERE condition);
      C. SELECT * FROM table1 WHERE id IN SELECT id FROM table2 WHERE condition;
      D. SELECT * FROM table1 WHERE id = (SELECT id FROM table2 WHERE condition);

      Solution

      1. Step 1: Check subquery syntax

        Subqueries must be enclosed in parentheses and used with operators like = or IN.
      2. Step 2: Identify correct syntax

        SELECT * FROM table1 WHERE id = (SELECT id FROM table2 WHERE condition); uses parentheses correctly and the = operator, which is valid syntax.
      3. Final Answer:

        SELECT * FROM table1 WHERE id = (SELECT id FROM table2 WHERE condition); -> Option D
      4. Quick Check:

        Subquery syntax requires parentheses [OK]
      Hint: Always put subqueries inside parentheses [OK]
      Common Mistakes:
      • Using double equals (==) instead of single equals (=)
      • Omitting parentheses around subquery
      • Using IN without parentheses
      3. What will be the output of this query?
      SELECT name FROM employees WHERE department_id IN (SELECT id FROM departments WHERE location = 'LA');

      Given:
      - departments table has ids 1,2,3 with locations NY, LA, LA respectively
      - employees table has:
      (name: Alice, department_id: 1),
      (name: Bob, department_id: 2),
      (name: Carol, department_id: 3),
      (name: Dave, department_id: 4)
      medium
      A. Bob, Carol
      B. Alice, Bob, Carol
      C. Alice, Dave
      D. Dave only

      Solution

      1. Step 1: Identify department IDs in LA

        From departments, IDs with location 'LA' are 2 and 3.
      2. Step 2: Find employees in those departments

        Employees with department_id 2 and 3 are Bob and Carol.
      3. Final Answer:

        Bob, Carol -> Option A
      4. Quick Check:

        Subquery filters departments = Bob, Carol [OK]
      Hint: Match outer query filter with subquery results [OK]
      Common Mistakes:
      • Including employees from other departments
      • Ignoring subquery filtering
      • Assuming all employees are returned
      4. Identify the error in this query:
      SELECT name FROM employees WHERE department_id = SELECT id FROM departments WHERE location = 'NY';
      medium
      A. Missing WHERE clause in outer query
      B. Using = instead of IN for multiple results
      C. Missing parentheses around the subquery
      D. Wrong table name 'employees'

      Solution

      1. Step 1: Check subquery syntax

        The subquery must be enclosed in parentheses to be valid.
      2. Step 2: Identify missing parentheses

        The query lacks parentheses around SELECT id FROM departments WHERE location = 'NY'.
      3. Final Answer:

        Missing parentheses around the subquery -> Option C
      4. Quick Check:

        Subqueries need parentheses [OK]
      Hint: Always wrap subqueries in parentheses [OK]
      Common Mistakes:
      • Forgetting parentheses causes syntax error
      • Confusing = and IN without checking subquery results
      • Assuming table names are incorrect without checking
      5. You want to find all employees who earn more than the average salary in their department. Which query correctly uses a subquery to achieve this?
      hard
      A. SELECT name, salary FROM employees WHERE salary > AVG(salary);
      B. SELECT name, salary FROM employees e WHERE salary > (SELECT AVG(salary) FROM employees WHERE department_id = e.department_id);
      C. SELECT name, salary FROM employees WHERE salary > (SELECT salary FROM employees);
      D. SELECT name, salary FROM employees WHERE salary > ALL (SELECT AVG(salary) FROM employees GROUP BY department_id);

      Solution

      1. Step 1: Understand the problem

        We want employees earning more than their department's average salary.
      2. Step 2: Analyze subquery usage

        SELECT name, salary FROM employees e WHERE salary > (SELECT AVG(salary) FROM employees WHERE department_id = e.department_id); uses a correlated subquery that calculates average salary per employee's department.
      3. Step 3: Check other options

        SELECT name, salary FROM employees WHERE salary > AVG(salary); lacks grouping, C compares salary to all salaries, D compares to all averages without correlation.
      4. Final Answer:

        SELECT name, salary FROM employees e WHERE salary > (SELECT AVG(salary) FROM employees WHERE department_id = e.department_id); -> Option B
      5. Quick Check:

        Correlated subquery per department = SELECT name, salary FROM employees e WHERE salary > (SELECT AVG(salary) FROM employees WHERE department_id = e.department_id); [OK]
      Hint: Use correlated subqueries to compare per group [OK]
      Common Mistakes:
      • Using aggregate functions without grouping
      • Not correlating subquery with outer query
      • Comparing salary to unrelated values
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard