Bird
Raised Fist0
PostgreSQLquery~5 mins

INTERSECT and EXCEPT in PostgreSQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the SQL INTERSECT operator do?
The INTERSECT operator returns only the rows that appear in both query results. It shows common rows between two SELECT statements.
Click to reveal answer
beginner
What is the purpose of the EXCEPT operator in SQL?
The EXCEPT operator returns rows from the first query that are not present in the second query. It shows what is unique to the first SELECT statement.
Click to reveal answer
intermediate
Can INTERSECT and EXCEPT be used with different numbers of columns in the SELECT statements?
No. Both SELECT statements must have the same number of columns with compatible data types for INTERSECT and EXCEPT to work.
Click to reveal answer
intermediate
How does INTERSECT differ from JOIN in SQL?
INTERSECT returns rows common to both queries as whole rows, while JOIN combines rows based on matching column values, often producing more columns.
Click to reveal answer
beginner
If you want to find customers who bought product A but not product B, which operator would you use?
You would use the EXCEPT operator to find customers in the product A list who are not in the product B list.
Click to reveal answer
What does the INTERSECT operator return?
ARows unique to the first query
BAll rows from the first query
CRows common to both SELECT queries
DAll rows from the second query
Which operator returns rows from the first query that are not in the second?
AEXCEPT
BINTERSECT
CUNION
DJOIN
Can INTERSECT be used if the two SELECT statements have different numbers of columns?
ANo, they must have the same number of columns
BYes, always
COnly if columns have the same names
DOnly if columns are numeric
Which SQL operator would you use to find rows unique to the first query?
AINTERSECT
BEXCEPT
CUNION
DCROSS JOIN
What is a key difference between INTERSECT and JOIN?
AINTERSECT combines columns, JOIN returns common rows
BBoth do the same thing
CJOIN returns unique rows, INTERSECT returns all rows
DINTERSECT returns common rows, JOIN combines rows based on matching columns
Explain how the INTERSECT operator works in SQL and give a simple example.
Think about finding common friends in two friend lists.
You got /3 concepts.
    Describe the EXCEPT operator and when you would use it.
    Imagine subtracting one list from another.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the INTERSECT operator do in PostgreSQL?
      easy
      A. Returns rows only in the second query
      B. Returns all rows from the first query
      C. Combines all rows from both queries without duplicates
      D. Returns rows common to both queries

      Solution

      1. Step 1: Understand INTERSECT purpose

        INTERSECT returns only rows that appear in both query results.
      2. Step 2: Compare with other set operations

        Unlike UNION or EXCEPT, INTERSECT finds common rows, not all or unique rows.
      3. Final Answer:

        Returns rows common to both queries -> Option D
      4. Quick Check:

        INTERSECT = common rows [OK]
      Hint: INTERSECT = find common rows between two queries [OK]
      Common Mistakes:
      • Confusing INTERSECT with UNION
      • Thinking INTERSECT returns all rows from first query
      • Mixing INTERSECT with EXCEPT
      2. Which of the following is the correct syntax to find rows in table1 but not in table2 using EXCEPT?
      easy
      A. SELECT * FROM table1 INTERSECT SELECT * FROM table2;
      B. SELECT * FROM table1 EXCEPT SELECT * FROM table2;
      C. SELECT * FROM table1 UNION EXCEPT SELECT * FROM table2;
      D. SELECT * FROM table1 EXCEPT ALL SELECT * FROM table2;

      Solution

      1. Step 1: Identify EXCEPT syntax

        The correct syntax is: SELECT ... EXCEPT SELECT ... to get rows in first query not in second.
      2. Step 2: Check options for correct usage

        SELECT * FROM table1 EXCEPT SELECT * FROM table2; matches correct syntax; others misuse INTERSECT, UNION, or EXCEPT ALL (which is valid but different).
      3. Final Answer:

        SELECT * FROM table1 EXCEPT SELECT * FROM table2; -> Option B
      4. Quick Check:

        EXCEPT syntax = SELECT ... EXCEPT SELECT ... [OK]
      Hint: Use EXCEPT between two SELECTs to find rows only in first [OK]
      Common Mistakes:
      • Using INTERSECT instead of EXCEPT
      • Adding UNION incorrectly
      • Using EXCEPT ALL when not needed
      3. Given these tables:
      table_a:
      id
      1
      2
      3

      table_b:
      id
      2
      3
      4

      What is the result of:
      SELECT id FROM table_a INTERSECT SELECT id FROM table_b;
      medium
      A. [1, 2, 3]
      B. [1]
      C. [2, 3]
      D. [4]

      Solution

      1. Step 1: List rows from both tables

        table_a has ids 1, 2, 3; table_b has ids 2, 3, 4.
      2. Step 2: Find common ids using INTERSECT

        Common ids are 2 and 3 only.
      3. Final Answer:

        [2, 3] -> Option C
      4. Quick Check:

        INTERSECT = common rows = [2, 3] [OK]
      Hint: INTERSECT returns only ids present in both tables [OK]
      Common Mistakes:
      • Including ids only in one table
      • Confusing INTERSECT with UNION
      • Expecting all ids combined
      4. What is wrong with this query?
      SELECT id, name FROM table1 EXCEPT SELECT id FROM table2;
      medium
      A. The number of columns in both SELECTs differ
      B. EXCEPT cannot be used with SELECT statements
      C. The query is missing a WHERE clause
      D. The table names are invalid

      Solution

      1. Step 1: Check column counts in both SELECTs

        First SELECT returns two columns (id, name), second returns one column (id).
      2. Step 2: Understand EXCEPT requirements

        EXCEPT requires both SELECTs to have the same number and compatible types of columns.
      3. Final Answer:

        The number of columns in both SELECTs differ -> Option A
      4. Quick Check:

        EXCEPT needs equal columns [OK]
      Hint: EXCEPT requires same number of columns in both SELECTs [OK]
      Common Mistakes:
      • Ignoring column count mismatch
      • Thinking EXCEPT needs WHERE clause
      • Assuming table names cause error
      5. You have two tables:
      employees with columns id, name
      contractors with columns id, name
      You want to find people who are either employees or contractors but not both.
      Which query correctly returns this list?
      hard
      A. SELECT id, name FROM employees EXCEPT SELECT id, name FROM contractors UNION SELECT id, name FROM contractors EXCEPT SELECT id, name FROM employees;
      B. SELECT id, name FROM employees INTERSECT SELECT id, name FROM contractors;
      C. SELECT id, name FROM employees UNION SELECT id, name FROM contractors;
      D. SELECT id, name FROM employees EXCEPT SELECT id, name FROM contractors;

      Solution

      1. Step 1: Understand the requirement

        We want people in employees or contractors but not in both (symmetric difference).
      2. Step 2: Use EXCEPT and UNION to find symmetric difference

        EXCEPT finds those in one table but not the other; UNION combines both exclusive sets.
      3. Step 3: Analyze options

        SELECT id, name FROM employees EXCEPT SELECT id, name FROM contractors UNION SELECT id, name FROM contractors EXCEPT SELECT id, name FROM employees; correctly combines EXCEPT in both directions with UNION to get symmetric difference.
      4. Final Answer:

        SELECT id, name FROM employees EXCEPT SELECT id, name FROM contractors UNION SELECT id, name FROM contractors EXCEPT SELECT id, name FROM employees; -> Option A
      5. Quick Check:

        Symmetric difference = EXCEPT + UNION [OK]
      Hint: Symmetric difference = (A EXCEPT B) UNION (B EXCEPT A) [OK]
      Common Mistakes:
      • Using only INTERSECT or UNION
      • Using EXCEPT one way only
      • Confusing symmetric difference with intersection
      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