Skip to main content
Documents
Basic SyntaxMath FunctionsDate FunctionsJSON FunctionsDatabasesTables & Schema ManagementString FunctionsTriggersIndexes

PostgreSQL FROM

The `FROM` clause in PostgreSQL is a fundamental component of SQL queries, used to specify the table or tables from which to retrieve or manipulate data. It is essential for identifying the data source in `SELECT`, `UPDATE`, and `DELETE` statements.

Usage

The `FROM` clause is utilized to indicate the tables involved in your SQL operations. It follows the initial keyword, such as `SELECT`, and is essential for directing the query to the correct data source.

sql
SELECT column1, column2, ...
FROM table_name
[WHERE condition];

In this syntax, `FROM table_name` designates the table from which the data is being retrieved.

Role in `UPDATE` and `DELETE`

In `UPDATE` and `DELETE` statements, the `FROM` clause helps specify the tables involved in the modification or removal of data.

sql
UPDATE table_name
SET column1 = value1, ...
FROM other_table
WHERE condition;
sql
DELETE FROM table_name
USING other_table
WHERE condition;

Examples

1. Basic Select

sql
SELECT *
FROM users;  -- Retrieves all columns from the `users` table

This example retrieves all columns from the `users` table, providing a complete dataset of the table's contents.

2. Selecting Specific Columns

sql
SELECT first_name, email
FROM customers;  -- Retrieves only `first_name` and `email` from `customers`

Here, the query pulls only the `first_name` and `email` columns from the `customers` table, which is useful for streamlined data retrieval.

3. Joining Multiple Tables

sql
SELECT orders.order_id, products.product_name
FROM orders
JOIN products ON orders.product_id = products.product_id;  -- Combines data from `orders` and `products`

This example demonstrates using `FROM` with a `JOIN` operation to combine data from `orders` and `products` tables based on a common `product_id`. The `JOIN` operation merges rows from multiple tables based on a related column between them.

4. Subqueries

sql
SELECT customer_id
FROM (SELECT * FROM orders WHERE amount > 100) AS high_value_orders;

This example shows how the `FROM` clause can interact with subqueries to handle more complex data retrieval scenarios.

5. Common Table Expressions (CTEs)

sql
WITH order_totals AS (
  SELECT customer_id, SUM(amount) AS total_amount
  FROM orders
  GROUP BY customer_id
)
SELECT customer_id
FROM order_totals
WHERE total_amount > 500;

This illustrates using `FROM` in conjunction with CTEs to manage intermediate query results that can be reused in the main query.

Tips and Best Practices

  • Select only necessary tables. Limit your `FROM` clause to only relevant tables to enhance query performance and clarity.
  • Utilize table aliases. Use aliases for tables to simplify query writing and reduce the chance of errors, especially when dealing with multiple tables.
  • Combine with conditions. Use the `WHERE` clause in conjunction with `FROM` to filter results and retrieve only the data you need.
  • Ensure clear join logic. Clearly define join conditions to avoid unintended results when working with multiple tables.