Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What does the SQL INTERSECT operator do?
It returns only the rows that appear in both SELECT query results, showing common rows between two datasets.
Click to reveal answer
beginner
How is INTERSECT different from UNION in SQL?
INTERSECT returns only rows common to both queries, while UNION returns all unique rows from both queries combined.
Click to reveal answer
intermediate
Can INTERSECT be used with queries that select different columns?
No, both queries must select the same number of columns with compatible data types for INTERSECT to work.
Click to reveal answer
beginner
Write a simple SQL query using INTERSECT to find common employee IDs from two tables: Employees2023 and Employees2024.
SELECT EmployeeID FROM Employees2023
INTERSECT
SELECT EmployeeID FROM Employees2024;
Click to reveal answer
intermediate
What happens if there are duplicate rows in the results of the SELECT queries used with INTERSECT?
INTERSECT automatically removes duplicates and returns only distinct common rows.
Click to reveal answer
What does the INTERSECT operator return in SQL?
AAll rows from the first SELECT query
BRows common to both SELECT queries
CAll rows from both SELECT queries combined
DRows unique to the first SELECT query
✗ Incorrect
INTERSECT returns only the rows that appear in both SELECT query results.
Which condition must be true for two SELECT queries to be used with INTERSECT?
AThey must select the same number of columns with compatible data types
BThey must select different columns
CThey must use different tables
DThey must have WHERE clauses
✗ Incorrect
Both queries must select the same number of columns with compatible data types for INTERSECT to work.
If one SELECT query returns duplicate rows, how does INTERSECT handle them?
ADuplicates cause an error
BDuplicates are kept as is
CDuplicates are removed; only distinct common rows are returned
DDuplicates are returned only from the first query
✗ Incorrect
INTERSECT removes duplicates and returns only distinct common rows.
Which SQL operator would you use to find rows that appear in both tables?
AINTERSECT
BUNION
CEXCEPT
DJOIN
✗ Incorrect
INTERSECT returns rows common to both tables.
What is the result of this query?
SELECT id FROM A
INTERSECT
SELECT id FROM B;
AIDs present only in table A
BAll IDs from table A
CAll IDs from table B
DIDs present in both tables A and B
✗ Incorrect
The query returns IDs that exist in both tables A and B.
Explain in your own words what the INTERSECT operator does in SQL and when you might use it.
Think about comparing two lists and finding what they share.
You got /3 concepts.
Describe the difference between INTERSECT and UNION in SQL with an example scenario for each.
Consider when you want only shared data vs all data combined.
You got /3 concepts.
Practice
(1/5)
1. What does the SQL INTERSECT operator do?
easy
A. Combines rows from both queries including duplicates.
B. Returns all rows from the first SELECT query.
C. Returns all rows from the second SELECT query.
D. Returns only the rows common to both SELECT queries.
Solution
Step 1: Understand the purpose of INTERSECT
The INTERSECT operator compares two SELECT queries and returns only the rows that appear in both results.
Step 2: Compare with other set operators
Unlike UNION or UNION ALL, INTERSECT excludes rows not common to both queries.
Final Answer:
Returns only the rows common to both SELECT queries. -> Option D
Quick Check:
INTERSECT = common rows [OK]
Hint: INTERSECT keeps only shared rows between two queries [OK]
Common Mistakes:
Confusing INTERSECT with UNION which combines all rows
Thinking INTERSECT returns rows from only one query
Assuming INTERSECT includes duplicates
2. Which of the following is the correct syntax to find common rows between two tables TableA and TableB with the same columns id and name?
easy
A. SELECT id, name FROM TableA JOIN TableB ON TableA.id = TableB.id;
B. SELECT id, name FROM TableA UNION SELECT id, name FROM TableB;
C. SELECT id, name FROM TableA INTERSECT SELECT id, name FROM TableB;
D. SELECT id, name FROM TableA WHERE id IN TableB;
Solution
Step 1: Identify correct INTERSECT syntax
The INTERSECT operator is used between two SELECT statements with matching columns and types.
Step 2: Check each option
SELECT id, name FROM TableA INTERSECT SELECT id, name FROM TableB; uses INTERSECT correctly. SELECT id, name FROM TableA UNION SELECT id, name FROM TableB; uses UNION which combines rows. SELECT id, name FROM TableA JOIN TableB ON TableA.id = TableB.id; uses JOIN which is different. SELECT id, name FROM TableA WHERE id IN TableB; has incorrect WHERE syntax.
Final Answer:
SELECT id, name FROM TableA INTERSECT SELECT id, name FROM TableB; -> Option C
Quick Check:
Correct INTERSECT syntax = SELECT id, name FROM TableA INTERSECT SELECT id, name FROM TableB; [OK]
Hint: Use INTERSECT between two SELECTs with matching columns [OK]
Common Mistakes:
Using UNION instead of INTERSECT
Trying to use WHERE with IN incorrectly
Confusing JOIN with INTERSECT
3. Given two tables: Employees1: id | name 1 | Alice 2 | Bob 3 | Carol
Employees2: id | name 2 | Bob 3 | Carol 4 | Dave
What is the result of this query?
SELECT id, name FROM Employees1 INTERSECT SELECT id, name FROM Employees2;
medium
A. Rows with Bob and Carol only
B. Rows with Alice, Bob, Carol, and Dave
C. Rows with Alice only
D. Rows with Dave only
Solution
Step 1: List rows from both tables
Employees1 has (1, Alice), (2, Bob), (3, Carol). Employees2 has (2, Bob), (3, Carol), (4, Dave).
Step 2: Find common rows
Common rows are those present in both: (2, Bob) and (3, Carol).
Final Answer:
Rows with Bob and Carol only -> Option A
Quick Check:
INTERSECT returns common rows = Bob, Carol [OK]
Hint: INTERSECT returns only rows present in both tables [OK]
Common Mistakes:
Including rows unique to one table
Confusing UNION with INTERSECT
Ignoring column matching in rows
4. Consider this SQL query:
SELECT id, name FROM Customers INTERSECT SELECT id, name FROM Orders;
It returns an error. What is the most likely cause?
medium
A. The columns selected have different data types in Customers and Orders.
B. INTERSECT cannot be used with SELECT statements.
C. The tables Customers and Orders do not exist.
D. INTERSECT requires a WHERE clause.
Solution
Step 1: Understand INTERSECT requirements
INTERSECT requires both SELECT queries to have the same number of columns with compatible data types.
Step 2: Analyze error causes
If columns differ in type (e.g., id is integer in one table and string in another), the query errors. Other options are incorrect because INTERSECT is valid syntax, tables must exist to run, and WHERE is optional.
Final Answer:
The columns selected have different data types in Customers and Orders. -> Option A
Quick Check:
Matching column types required for INTERSECT [OK]
Hint: Check column types match for INTERSECT queries [OK]
Common Mistakes:
Assuming INTERSECT needs WHERE clause
Thinking INTERSECT is invalid syntax
Ignoring data type mismatches
5. You have two tables: ProductsA with columns product_id, name, price ProductsB with columns product_id, name, price
You want to find products that exist in both tables with the same product_id and name, ignoring price differences.
Which query correctly uses INTERSECT to achieve this?
hard
A. SELECT product_id, name, price FROM ProductsA INTERSECT SELECT product_id, name, price FROM ProductsB;
B. SELECT product_id, name FROM ProductsA INTERSECT SELECT product_id, name FROM ProductsB;
C. SELECT product_id FROM ProductsA INTERSECT SELECT product_id FROM ProductsB;
D. SELECT * FROM ProductsA INTERSECT SELECT * FROM ProductsB;
Solution
Step 1: Identify columns to compare
You want to compare only product_id and name, ignoring price differences.
Step 2: Use INTERSECT on matching columns
SELECT product_id, name FROM ProductsA INTERSECT SELECT product_id, name FROM ProductsB; selects product_id and name from both tables and intersects them, returning only products common by those two columns.
Step 3: Analyze other options
SELECT product_id, name, price FROM ProductsA INTERSECT SELECT product_id, name, price FROM ProductsB; includes price, so products with different prices won't match. SELECT product_id FROM ProductsA INTERSECT SELECT product_id FROM ProductsB; compares only product_id, ignoring name. SELECT * FROM ProductsA INTERSECT SELECT * FROM ProductsB; compares all columns, including price, which is not desired.
Final Answer:
SELECT product_id, name FROM ProductsA INTERSECT SELECT product_id, name FROM ProductsB; -> Option B
Quick Check:
INTERSECT on selected columns matches desired fields [OK]
Hint: Select only columns to compare before INTERSECT [OK]