Open In App

Join operation Vs Nested query in DBMS

The growth of technology and automation coupled with exponential amounts of data has led to the importance and omnipresence of databases which, simply put, are organized collections of data. Considering a naive approach, one can theoretically keep all the data in one large table, however that increases the access time in searching for a record, security issues if the master table is destroyed, redundant storage of information and other issues. So tables are decomposed into multiple smaller tables. 

For retrieving information from multiple tables, we need to extract selected data from different records, using operations called join(inner join, outer join and most importantly natural join). Consider 2 table schemas employee(employee_name, street, city)with n rows and works(employee_name, branch_name, salary) with m rows. A cartesian product of these 2 tables creates a table with n*m rows. A natural join selects from this n*m rows all rows with same values for employee_name. To avoid loss of information(some tuples in employee have no corresponding tuples in works) we use left outer join or right outer join. 



A join operation or a nested query is better subject to conditions: 
 

Join operation and nested queries are both used in relational database management systems (RDBMS) to combine data from multiple tables, but they differ in their approach.



Join operation:
A join operation combines data from two or more tables based on a common column or columns. The join operation is performed using the JOIN keyword in SQL, and it returns a single result set that contains columns from all the tables involved in the join.

For example, let’s say we have two tables, Table1 and Table2, with the following data:

Table1
ID | Name
1 | John
2 | Sarah
3 | David

Table2
ID | Address
1 | 123 Main St.
2 | 456 Elm St.
4 | 789 Oak St.

If we want to combine the data from these two tables based on the ID column, we can perform an inner join using the following SQL query:

SELECT Table1.ID, Table1.Name, Table2.Address
FROM Table1
INNER JOIN Table2
ON Table1.ID = Table2.ID

Result:
ID | Name | Address
1 | John | 123 Main St.
2 | Sarah | 456 Elm St.

Nested query:
A nested query is a SQL query that is embedded within another SQL query. It is used to retrieve data from one or more tables based on a condition that is evaluated using the results of another query. The nested query is executed first, and its results are used to evaluate the outer query.

For example, let’s say we have the same two tables as before:

Table1
ID | Name
1 | John
2 | Sarah
3 | David

Table2
ID | Address
1 | 123 Main St.
2 | 456 Elm St.
4 | 789 Oak St.

If we want to retrieve the names of the people who have an address in Table2, we can use a nested query as follows:

SELECT Name
FROM Table1
WHERE ID IN (SELECT ID FROM Table2)

Result:
Name
John
Sarah

In this case, the nested query is executed first, and it returns the ID values of the rows in Table2. These ID values are then used to evaluate the outer query, which retrieves the names of the people who have those ID values in Table1.

The choice between using a join operation or a nested query depends on the specific requirements of the task at hand. Joins are often faster and more efficient for large datasets, but nested queries can be more flexible and allow for more complex conditions to be evaluated.

Article Tags :
7. DBMS