Joins

Why We Need Joins: Linking Tables Together

Senior Data Analyst
January 31, 2026
6 min read

The Multi-Table Mystery

It was my first month when I encountered a strange situation. The `orders` table had a `customer_id` column, but no customer name or email. Where was the customer info? In a completely different table called `customers`.

*"Why would anyone do this?"* I thought. The answer changed how I thought about data forever.

The Quest: The Philosophy of Normalization

Databases are "Relational" because they link data together through relationships. We split data into multiple tables to avoid **redundancy**.

Imagine if every order row repeated the customer's full name, address, and email. If a customer changed their address, you'd have to update 1,000 order rows!

Instead, we store customer info **once** in the `customers` table and just reference the `customer_id` in every order. This is called **Normalization**.

The Implementation: The Concept of the Key

A "Key" is the column that links two tables together.

  • **Primary Key**: A unique identifier for each row in a table (e.g., `customer_id` in `customers`).
  • **Foreign Key**: A column in another table that references that primary key (e.g., `customer_id` in `orders`).
  • The Join: The Connection

    A **JOIN** is the SQL instruction that says: "Take rows from Table A and connect them to rows in Table B based on this matching Key."

    -- The basic concept

    SELECT orders.*, customers.name, customers.email

    FROM orders

    JOIN customers ON orders.customer_id = customers.id;

    The "Oops" Moment

    I once tried to analyze orders without a join and couldn't figure out which customers were which. I only had meaningless IDs.

    **Pro Tip**: If شما see an `_id` column in your table, it's almost always a "Key" that points to another table. Your job is to find that other table and connect them.

    The Victory

    Understanding the "Why" behind database design helped me navigate schemas with hundreds of tables. I could now trace any piece of information back to its source. This is the foundation of data exploration.

    Your Task for Today

    Look at a table in your database. Identify any columns ending in `_id`. Can شما find the corresponding "parent" table?

    *Day 32: Your First Join—INNER JOIN.*

    Ready to put your knowledge into practice?

    Join SQL Mastery and learn through interactive exercises.