Multiple FROMs - what it means
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.
Understanding "Multiple FROMs" in SQL
In the realm of SQL (Structured Query Language), the FROM clause is fundamental in defining where the data for a query is sourced. It indicates the table from which to retrieve or manipulate data. Typically, SQL queries involve a single FROM clause. However, programmers often colloquially refer to scenarios involving “multiple FROMs” when discussing complex queries that derive data from multiple tables or data sources through various techniques, including joins, subqueries, and data blending.
1. Technical Explanation
The essence of utilizing multiple data sources lies in the need for relational databases to handle structured data spread across different tables. This is common in normalized databases designed to reduce redundancy.
1.1 Joins: Combining Data from Multiple Tables
When people talk about "multiple FROMs," they often mean joins. Joins allow the retrieval of data from two or more tables based on a related column between them. SQL supports several types of joins: INNER JOIN, LEFT JOIN, RIGHT JOIN, and FULL OUTER JOIN.
In this example, two tables, employees and departments, are combined based on a common column using an INNER JOIN.
1.2 Subqueries: Nested Queries
Subqueries also enable fetching data from multiple sources within a single query. A subquery is a query embedded within another SQL statement to provide a subset of data.
Here, the subquery fetches the id of the Engineering department, which is then used to select employees.
1.3 Union and Union All: Combining Data from Multiple Selects
UNION combines the result of two distinct SELECT statements. Each SELECT pulls from a potentially different table or subset of data.
This combines names from two separate tables: employees and contractors.
1.4 Data Blending
Data blending is used primarily in reporting and analytics tools like Tableau, where data is combined from different data sources without explicit joins in SQL. However, it relies heavily on the concept of using datasets from multiple supplies as if they had multiple FROM clauses integrated internally.
2. Key Points About Multiple Data Sources in SQL
| Concept or Technique | Explanation | SQL Example Syntax |
| Joins | Combines tables by related columns to form a single dataset. | SELECT * FROM A JOIN B ON A.key = B.key; |
| Subqueries | Nested queries which provide intermediary results. | SELECT * FROM A WHERE column = (SELECT ...); |
| Union/Union All | Merges datasets, ensuring unique rows (except for UNION ALL). | SELECT ... UNION SELECT ...; |
| Left/Right Joins | Includes unmatched rows from the left or right table. | SELECT * FROM A LEFT JOIN B ON A.key = B.key; |
3. Best Practices When Using Multiple Data Sources
- Optimize Performance: When working with multiple tables, ensure your tables are indexed appropriately to avoid slowdown.
- Understand Relationships: Define the relationships between tables clearly to implement joins correctly.
- Manage Complexity: Break down complex queries involving multiple sources into CTEs (Common Table Expressions) or views for better readability and maintainability.
- Consistent Aliasing: Use consistent and descriptive aliases for tables in complex queries to make code more understandable.
4. Additional Subtopics
4.1 Cross Join
A cross join returns the Cartesian product of the two tables, meaning every possible combination of rows. It's seldom used because of its potential to produce enormous and unfiltered results sets.
4.2 Data Import
When discussing multiple FROMs in non-SQL contexts, such as importing data in bulk or querying across federated databases, tools and languages (Python with pandas, for instance) offer functionalities to pull from numerous sources, mimicking the "multiple FROMs" approach.
Conclusion
While SQL itself does not support syntax with "multiple FROMs" per se, understanding methods of incorporating multiple data sources is pivotal. These techniques facilitate complex queries capable of providing deep insights by leveraging various data points across structured tables. In honing these skills, SQL users unlock the full potential of relational database systems.
Related reading
- Multiple Indexes vs Multi-Column Indexes
- Multiple select statements in Single query
- Multiple SQL import files in Spring Boot
- multiple tables broken down into categories vs one table with many columns
- Multiple Updates in MySQL
- MultipleActiveResultSetsTrue or multiple connections?
- Must JDBC Resultsets and Statements be closed separately although the Connection is closed afterwards?
- MyISAM versus InnoDB

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.