MySQL 实现一表多表关联(mysql一表关联多表)

MySQL 实现一表多表关联

在 MySQL 中,一表多表关联通过外键实现。外键是一个表中的字段,它指向另一个表中的主键。通过外键,可以建立多个表之间的关系,实现数据的关联查询。

下面介绍在 MySQL 中如何实现一表多表关联。

1. 创建主表和从表

首先创建两个表,一个作为主表,一个作为从表。

主表:

CREATE TABLE customer (
customer_id INT PRIMARY KEY,
customer_name VARCHAR(50),
customer_eml VARCHAR(50)
);

从表:

CREATE TABLE order (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
order_amount FLOAT,
FOREIGN KEY (customer_id) REFERENCES customer(customer_id)
);

在从表 order 中,customer_id 作为外键指向主表 customer 中的主键 customer_id。

2. 插入数据

在主表 customer 和从表 order 中插入数据。

主表 customer:

INSERT INTO customer (customer_id, customer_name, customer_eml)
VALUES
(1, '张三', 'zhangsan@example.com'),
(2, '李四', 'lisi@example.com'),
(3, '王五', 'wangwu@example.com');

从表 order:

INSERT INTO order (order_id, customer_id, order_date, order_amount)
VALUES
(1, 1, '2020-01-01', 100.00),
(2, 2, '2020-01-02', 200.00),
(3, 3, '2020-01-03', 300.00);

3. 查询数据

通过一表多表关联,可以查询主表和从表中的数据。

查询主表 customer:

SELECT *
FROM customer;

查询结果:

customer_id  customer_name  customer_eml
1 张三 zhangsan@example.com
2 李四 lisi@example.com
3 王五 wangwu@example.com

查询从表 order:

SELECT *
FROM order;

查询结果:

order_id  customer_id  order_date   order_amount
1 1 2020-01-01 100.00
2 2 2020-01-02 200.00
3 3 2020-01-03 300.00

查询主表和从表关联后的数据:

SELECT *
FROM customer
JOIN order ON customer.customer_id = order.customer_id;

查询结果:

customer_id  customer_name  customer_eml         order_id  customer_id  order_date   order_amount
1 张三 zhangsan@example.com 1 1 2020-01-01 100.00
2 李四 lisi@example.com 2 2 2020-01-02 200.00
3 王五 wangwu@example.com 3 3 2020-01-03 300.00

通过 JOIN 关键字,将主表和从表按照条件关联在一起,查询出了主表和从表关联后的数据。

MySQL 中一表多表关联的实现方式,可以帮助我们更加高效地查询和管理数据。同时,外键的使用也有利于数据的一致性和完整性。


数据运维技术 » MySQL 实现一表多表关联(mysql一表关联多表)