MySQL 如何使用关键字JOIN编写MySQL内连接的查询语句?

MySQL 如何使用关键字JOIN编写MySQL内连接的查询语句?

MySQL是一种广泛使用的开源关系型数据库。在查询大量数据时,内连接是经常使用的查询语句之一。内连接查询可以根据两个或多个表之间的特定字段进行匹配,并检索满足该条件的所有行。 本文将讲解如何使用关键字JOIN编写MySQL内连接的查询语句。

阅读更多:MySQL 教程

JOINS(连接)的类型

在MySQL中,JOIN(连接)的类型可以分为下面三种类型:

  1. 内连接 (INNER JOIN)

    返回两个表的交集,即两个表中匹配的行。

  2. 左连接 (LEFT JOIN)

    返回第一个表的所有行,与第二个表中匹配的行关联。如果第二个表中没有匹配的行,则为NULL。

  3. 右连接 (RIGHT JOIN)

    返回第二个表的所有行,与第一个表中匹配的行关联。如果第一个表中没有匹配的行,则为NULL。

本文重点讲解内连接的查询语句。

MySQL内连接的语法

INNER JOIN 是最常见的连接类型,返回两个表中都有匹配行的所有行。下面是INNER JOIN的语法:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

实际案例

下面是一个案例,演示了如何在MySQL中使用INNER JOIN语句。我们有一张订单表和一张顾客表。每个订单都关联到一个客户ID,因此我们可以使用INNER JOIN查找属于每个客户的所有订单。

创建表

首先,我们需要创建一个顾客表和一个订单表,以便在两个表之间创建 INNER JOIN。下面是一个简单的表定义:

customers表

CREATE TABLE customers (
  id INT PRIMARY KEY,
  name VARCHAR(255),
  email VARCHAR(255)
);

orders表

CREATE TABLE orders (
  id INT PRIMARY KEY,
  customer_id INT,
  order_date DATE,
  total_amount DECIMAL(10,2)
);

插入数据

接下来,我们需要将一些示例数据添加到这两个表中。我们将添加三个客户和一些订单。

customers表

INSERT INTO customers VALUES 
(1, '李四', 'lisi@example.com'),
(2, '王五', 'wangwu@example.com'),
(3, '赵六', 'zhaoliu@example.com');

orders 表

INSERT INTO orders VALUES 
(1, 1, '2021-10-15', 100.00),
(2, 1, '2021-10-17', 200.00),
(3, 2, '2021-10-20', 75.00),
(4, 3, '2021-10-21', 50.00),
(5, 3, '2021-10-22', 25.00);

进行内连接

现在,我们已经准备好将两个表连接在一起。我们将使用 INNER JOIN 语句查找每个客户的订单。

SELECT customers.name, orders.id, orders.order_date, orders.total_amount
FROM customers
INNER JOIN orders
ON customers.id = orders.customer_id
ORDER BY customers.name, orders.order_date;

这将返回以下输出:

+--------+----+------------+--------------+
| name   | id | order_date | total_amount |
+--------+----+------------+--------------+
| 李四    |  1 | 2021-10-15 |      100.00 |
| 李四    |  2 | 2021-10-17 |      200.00 |
| 王五    |  3 | 2021-10-20 |       75.00 |
| 赵六    |  4 | 2021-10-21 |       50.00 |
| 赵六    |  5 | 2021-10-22 |       25.00

结论

使用 INNER JOIN 进行表连接查询时,我们需要指定要连接的两个表和连接条件。通过这种方式,我们可以轻松快捷地获取多个表中的数据并进行关联与分析。同时,对于大型的数据量,在查询中使用适当的连接类型也可以提高数据检索的效率,并增强查询语句的执行性能。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程