SQL > Advanced SQL > Intersect

The INTERSECT command in SQL combines the results of two SQL statement and returns only data that are present in both SQL statements.

SQL INTERSECT returns only the distinct rows that appear in the results of both SELECT statements — working like an AND operator between two query results. Both statements must select the same number of columns with compatible data types.

INTERSECT can be thought of as an AND operator (value is selected only if it appears in both statements), while UNION and UNION ALL can be thought of as an OR operator (value is selected if it appears in either the first or the second statement).

Syntax

The syntax for INTERSECT is as follows:

[SQL Statement 1]
INTERSECT
[SQL Statement 2];

The columns selected in [SQL Statement 1] and [SQL Statement 2] need to be of the same data type for INTERSECT to work.

Example

We use the following tables for our example.

Table Store_Information

 Store_Name  Sales  Txn_Date 
 Los Angeles  1500  Jan-05-1999 
 San Diego  250  Jan-07-1999 
 Los Angeles  300  Jan-08-1999 
 Boston  700  Jan-08-1999 

Table Internet_Sales

Txn_DateSales
Jan-07-1999250
Jan-10-1999535
Jan-11-1999320
Jan-12-1999750

To find out all the dates where there are both store sales and internet sales, we use the following SQL statement:

SELECT Txn_Date FROM Store_Information
INTERSECT
SELECT Txn_Date FROM Internet_Sales;

Result:

Txn_Date
Jan-07-1999

Please note that the INTERSECT command will only return distinct values.

Frequently Asked Questions

What does SQL INTERSECT do?
SQL INTERSECT combines two SELECT statements and returns only the rows that appear in both result sets — the intersection of the two results. It works like an AND operator between two queries and automatically removes duplicates from the output.
What is the difference between SQL INTERSECT and SQL UNION?
INTERSECT returns rows present in BOTH queries (AND logic — common data only). UNION returns all rows from EITHER query with duplicates removed (OR logic). UNION ALL returns all rows from both including duplicates. Use INTERSECT when you want to find data shared between two result sets.
What are the requirements for using SQL INTERSECT?
Both SELECT statements must return the same number of columns, and corresponding columns must have compatible data types. The column names in the final result are taken from the first SELECT statement.
Does SQL INTERSECT return duplicate rows?
No. INTERSECT automatically returns only distinct values. Even if a value appears multiple times in both result sets, it will appear only once in the INTERSECT output. Use a workaround with JOIN if you need to preserve duplicates.

Next: SQL MINUS

This page was last updated on March 19, 2026.




Copyright © 2026   1keydata.com   All Rights Reserved     Privacy Policy     About   Contact