How To Use Nested SELECT Queries in SQLite
Last Updated :
10 Apr, 2024
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.
Nested Select Statement in SQLite
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.
Syntax
SELECT column_name_01FROM table_name_01WHERE column_name_01 IN (SELECT column_name_02 FROM table_name_02);
Demo SQL Database
Here are two tables: geeksforgeeks and courses. These tables will used in examples to explain practical applications of nested SELECT statements.
geeksforgeeks table:
Table - geeksforgeeksTo create this table on your system, write the following queries:
SQLite
CREATE TABLE geeksforgeeks
(
id INTEGER PRIMARY KEY,
name TEXT,
questions INTEGER,
potd_streak INTEGER
);
INSERT INTO geeksforgeeks (id, name, questions, potd_streak)
VALUES
(1001, 'Vishu', 550, 300),
(1002, 'Neeraj', 510, 290),
(1003, 'Aayush', 520, 50),
(1004, 'Sumit', 450, 120),
(1005, 'Vivek', 365, 260);
courses table:
Table - coursesTo create this table on your system, write the following queries:
SQLite
CREATE TABLE courses
(
id INTEGER ,
name TEXT,
course_name TEXT,
duration INTEGER
);
INSERT INTO courses(id, name, course_name, duration)
VALUES (1001, 'Vishu', 'Python', 6), -- Vishu, Python (Assuming this is the intended course)
(1004, 'Sumit', 'Python', 6),
(1003, 'Aayush', 'Java', 5),
(1002, 'Neeraj', 'Javascript', 5);
Nested SELECT Statements in SQLite Examples
There are different ways to form a nested SELECT statement in SQLite. This section covers practical examples of nested SELECT statements in SQLite.
Nested SELECT Statement in SQLite Using IN Operator Example
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:
Nested SLECT statement output using In OperatorExplanation: 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.
Nested SELECT Statement in SQLite Using Exists Operator
In this example, we are going to use exists operator. When using Exists operator, parent query 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:
Nested SELECT statement output using Exists OperatorExplanation: 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.
Conclusion
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.
Similar Reads
How to Use Stored Procedure in SQLite? SQLite is a popular, lightweight, self-contained, serverless, and open-source relational database management system (RDBMS) that is widely used in various applications. SQLite does not directly support stored procedures like other database management systems (DBMS) such as MySQL or PostgreSQL. To ac
4 min read
Nested Queries in SQL A nested query (also called a subquery) is a query embedded within another SQL query. The result of the inner query is used by the outer query to perform additional operations. Subqueries can be used in various parts of an SQL query such as SELECT, FROM or WHERE Clauses. They are commonly used for p
7 min read
How to Request a Random Row in SQLite? SQLite is a database engine that provides a relational database management system and is a C language library with features like self-contained, serverless, and high reliability. SQLite is different from other traditional SQL database engines like MySQL, Oracle, PostgreSQL, etc. Traditional database
4 min read
How to Select the Nth Row in a SQLite Database Table? In SQLite, selecting a specific row from a table can be a common requirement, especially when dealing with large datasets. In this article, we will explore different methods to select the nth row from a SQLite database table. Whether we're a beginner or an experienced developer understanding these m
4 min read
How to Insert and Select Data in SQLite3 Database using Node.js ? Inserting and selecting data in an SQLite3 database using Node.js involves connecting to the database, running SQL queries, and handling the results. SQLite is an excellent choice for small to medium-sized applications due to its simplicity and lightweight nature. This guide will walk you through th
3 min read