-- 示例代码:MySQL 一对多关联查询,并将结果合并
-- 假设有两个表:`orders` 和 `order_items`
-- `orders` 表存储订单信息,`order_items` 表存储每个订单的多个商品项
-- 创建 `orders` 表
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_name VARCHAR(100),
order_date DATE
);
-- 创建 `order_items` 表
CREATE TABLE order_items (
item_id INT PRIMARY KEY,
order_id INT,
product_name VARCHAR(100),
quantity INT,
price DECIMAL(10, 2),
FOREIGN KEY (order_id) REFERENCES orders(order_id)
);
-- 插入示例数据
INSERT INTO orders (order_id, customer_name, order_date) VALUES
(1, 'Alice', '2023-10-01'),
(2, 'Bob', '2023-10-02');
INSERT INTO order_items (item_id, order_id, product_name, quantity, price) VALUES
(1, 1, 'Product A', 2, 10.00),
(2, 1, 'Product B', 1, 20.00),
(3, 2, 'Product C', 3, 15.00);
-- 一对多关联查询,并将每个订单的商品项合并成一个字符串
SELECT
o.order_id,
o.customer_name,
o.order_date,
GROUP_CONCAT(
CONCAT(i.product_name, ': ', i.quantity, ' x ', i.price)
SEPARATOR '; '
) AS items
FROM
orders o
JOIN
order_items i ON o.order_id = i.order_id
GROUP BY
o.order_id;
-- 解释:
-- 1. 使用 `JOIN` 关键字将 `orders` 和 `order_items` 表进行关联。
-- 2. 使用 `GROUP_CONCAT` 函数将每个订单的多个商品项合并成一个字符串。
-- 3. `GROUP BY` 子句确保每个订单只返回一行结果。
上一篇:mysql 远程连接命令
下一篇:mysql 小数取整
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站