![]() |
VOOZH | about |
A nested SELECT statement is a statement in which a SELECT statement is used within another SELECT statement. Nested SELECT queries or subqueries are used in SQLite to perform complex operations.
This article explains how to use nested SELECT statements in SQLite by covering all the basic structures and concepts of nested SELECT Statements in SQLite. It will also cover the practical applications of nested SELECT queries with examples.
In SQLite, a nested SELECT statement refers to a SELECT statement that is embedded in another SELECT statement. A nested SELECT statement can be divided into two parts i.e. parent query and a subquery.
In most cases, the result of the parent query depends on the result of the child query or subquery.
Nested SELECT statements are used to filter results. Filtering of results is a basic task in data analysis.
SELECT column_name_01FROM table_name_01WHERE column_name_01 IN (SELECT column_name_02 FROM table_name_02);
Here are two tables: geeksforgeeks and courses. These tables will used in examples to explain practical applications of nested SELECT statements.
geeksforgeeks table:
To create this table on your system, write the following queries:
courses table:
To create this table on your system, write the following queries:
There are different ways to form a nested SELECT statement in SQLite. This section covers practical examples of nested SELECT statements in SQLite.
In this example, we are going to a form a nested SELECT statement with the help of IN operator.
This query displays all the details from table geeksforgeeks where a student has taken courses of duration 6 months.
Query:
SELECT *
FROM geeksforgeeks
WHERE id In (SELECT courses.id FROM courses
WHERE courses.id = geeksforgeeks.id AND courses.duration = 6);
Output:
Explanation: There is only one course in courses table of duration '6' months i.e. 'Python' taken by id's 1001 and 1004. That is the same id's displayed in the output block.
In this example, we are going to use exists operator. When using Exists operator, parentquery will only run if the child query returns a True value.
This query will display all the records of 'geeksforgeeks' table only if there are courses in 'courses' table where duration is greater than 4 months.
Query:
SELECT *
FROM geeksforgeeks
WHERE EXISTS ( SELECT 1 FROM courses
WHERE courses.id = geeksforgeeks.id AND courses.duration > 4 );
Output:
Explanation: In the above image, we can clearly notice all the records from 'geeksforgeeks' table get displayed. Since all the records of courses table has course duration greater than 4 months.
A nested SELECT statement consists of two parts i.e. a parent query and child query. A parent query result generally depends on the result of child query or subquery. Using nested SELECT queries allows users to perform more complex data retrieval operations in SQLite.
This article covered all the basic concepts related to the topic with clear and concise examples along with there explanations.