MySQL联表查询案例应用(mysql两表联查例题)

MySQL联表查询案例应用

MySQL作为一款非常常用的关系型数据库,常常需要进行联表查询以获取更详细的信息。在本文中,我们将通过一个案例来介绍MySQL联表查询的应用。

案例背景

假设我们现在有两个表,一个表是商品表,包含所有商品的信息,另一个表是订单表,包含所有用户的订单信息。我们需要通过联表查询来获取每个订单对应的商品信息。

我们需要创建这两个表格并插入数据。商品表如下:

CREATE TABLE `goods` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`price` decimal(10,2) NOT NULL,
PRIMARY KEY (`id`)
);

INSERT INTO `goods` (`id`, `name`, `price`) VALUES
(1, '手机', 2599.00),
(2, '电视', 3699.00),
(3, '笔记本电脑', 8999.00),
(4, '平板电脑', 3999.00),
(5, '数码相机', 1999.00);

订单表如下:

CREATE TABLE `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`customer` varchar(50) NOT NULL,
`goods_id` int(11) NOT NULL,
`quantity` int(11) NOT NULL,
`total_price` decimal(10,2) NOT NULL,
PRIMARY KEY (`id`),
CONSTRNT `goods` FOREIGN KEY (`goods_id`) REFERENCES `goods` (`id`)
);
INSERT INTO `orders` (`id`, `customer`, `goods_id`, `quantity`, `total_price`) VALUES
(1, '张三', 1, 1, 2599.00),
(2, '李四', 2, 1, 3699.00),
(3, '王五', 3, 1, 8999.00),
(4, '赵六', 1, 2, 5198.00),
(5, '孙七', 5, 1, 1999.00);

创建完成后,我们可以使用以下代码进行查询:

SELECT orders.id, orders.customer, goods.name, orders.quantity, orders.total_price
FROM orders
INNER JOIN goods
ON orders.goods_id = goods.id;

这段代码使用了INNER JOIN语句,将order表格和goods表格通过goods_id字段进行连接。然后,通过SELECT语句将需要展示的信息进行选取。

运行结果如下:

+----+----------+-----------------+----------+-------------+
| id | customer | name | quantity | total_price |
+----+----------+-----------------+----------+-------------+
| 1 | 张三 | 手机 | 1 | 2599.00 |
| 2 | 李四 | 电视 | 1 | 3699.00 |
| 3 | 王五 | 笔记本电脑 | 1 | 8999.00 |
| 4 | 赵六 | 手机 | 2 | 5198.00 |
| 5 | 孙七 | 数码相机 | 1 | 1999.00 |
+----+----------+-----------------+----------+-------------+

我们可以看到,通过联表查询,我们得到了每个订单对应的商品名称、单价、数量和总价等完整信息。

本文介绍的是一个简单的MySQL联表查询案例,但这种方法可以应用于更复杂的数据结构,通过联表查询可以避免数据冗余和重复,提高了查询的效率。如果您的数据涉及到多个表格,不妨也使用联表查询的方法。


数据运维技术 » MySQL联表查询案例应用(mysql两表联查例题)