How do you use the INTERSECT operator to retrieve common rows from two queries?
Posted by SamPetr
Last Updated: July 24, 2024
The INTERSECT operator in SQL is used to retrieve rows that are common to two (or more) SELECT statements. This means it will return only the rows that are present in both result sets. The basic syntax for using the INTERSECT operator is as follows:
SELECT column1, column2, ...
FROM table1
WHERE condition1

INTERSECT

SELECT column1, column2, ...
FROM table2
WHERE condition2;
Key Points to Consider:
1. Column Match: The number of columns and their data types in both SELECT queries must match. The columns in both queries should be in the same order and have compatible data types. 2. Distinct Rows: The INTERSECT operator returns distinct rows. If there are duplicate rows in the result sets of either query, they will only appear once in the final output. 3. Database Compatibility: Not all SQL databases support the INTERSECT operator, but it is available in many, including PostgreSQL, Oracle, SQL Server, and SQLite.
Example:
Assuming you have two tables, Employees2022 and Employees2023, and you want to find employees who were present in both years:
SELECT EmployeeID, EmployeeName
FROM Employees2022

INTERSECT

SELECT EmployeeID, EmployeeName
FROM Employees2023;
In this example, the query will return a list of EmployeeID and EmployeeName for those employees who appear in both the Employees2022 and Employees2023 tables.
Example With Conditions:
You can also use conditions in your queries:
SELECT EmployeeID, EmployeeName
FROM Employees2022
WHERE Department = 'Sales'

INTERSECT

SELECT EmployeeID, EmployeeName
FROM Employees2023
WHERE Department = 'Sales';
This will return employees who were in the Sales department in both years.
Conclusion:
Using the INTERSECT operator is an efficient way to find common records in SQL. Ensure that both SELECT statements adhere to the column and datatype requirements to get accurate results.