INNER JOINs in MySQL Workbench

  • let's dive into INNER JOINs in MySQL with an example.
  • Consider two hypothetical tables: `orders` and `customers`. The `orders` table contains information about orders made by customers, and the `customers` table contains information about the customers themselves.
Here's what the tables schema might look like:
  • customers table:


    -- Create the 'customers' table
    CREATE TABLE customers (
        customer_id INT PRIMARY KEY,
        customer_name VARCHAR(50)
    );

    -- Insert data into the 'customers' table
    INSERT INTO customers (customer_id, customer_name)
    VALUES
        (101, 'Alice'),
        (102, 'Bob'),
        (103, 'Carol'),
        (104, 'David');

  • orders table:

    -- Create the 'orders' table
    CREATE TABLE orders (
        order_id INT PRIMARY KEY,
        customer_id INT,
        order_date DATE,
        FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
    );

    -- Insert data into the 'orders' table
    INSERT INTO orders (order_id, customer_id, order_date)
    VALUES
        (1, 101, '2023-08-01'),
        (2, 102, '2023-08-02'),
        (3, 103, '2023-08-02'),
        (4, 101, '2023-08-03');

  • Now, let's say you want to retrieve a list of orders along with the customer names who made those orders. This is where the INNER JOIN comes into play:

    SELECT orders.order_id, orders.order_date, customers.customer_name
    FROM orders
    INNER JOIN customers ON orders.customer_id = customers.customer_id;


In this query:
  • orders and customers are the two tables you want to join.
  • orders.customer_id is the column from the orders table that is related to the customers.customer_id column.
  • The ON clause specifies the condition for the join. Here, it's matching rows where the customer_id values are equal in both tables.
The result of this query would be:
  • The INNER JOIN only includes rows where there's a match in both the `orders` and `customers` tables based on the specified condition. In this example, only the orders made by customers with corresponding names are included in the result.

No comments:

Post a Comment