Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql一对多关联查询,数据合并

作者:泪﹌无痕   发布日期:2025-09-17   浏览:83

-- 示例代码: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 小数取整

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

mysql查询表名,模糊匹配

brew 启动mysql

unsigned在mysql中是什么意思

mysql 备份恢复

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站