首页 > 数据库 > mysql教程 > 如何在 MySQL 中将多个子行连接成一个父行?

如何在 MySQL 中将多个子行连接成一个父行?

Mary-Kate Olsen
发布: 2024-11-28 07:36:13
原创
738 人浏览过

How to Concatenate Multiple Child Rows into a Single Parent Row in MySQL?

在 MySQL 中将多个子行连接成一行

在使用关系数据库时,通常需要组合来自多个相关的数据行合并为一行。此任务可以使用 MySQL 中的 GROUP_CONCAT 函数来完成。

问题陈述:

考虑两个表:Ordered_Item 和 Ordered_Options。 Ordered_Item 表存储订购的项目,而 Ordered_Options 表记录与每个订购的项目关联的选项。目标是创建一个查询,为每个订购的商品输出一行,并将选项作为单独的列包含在内。

解决方案:

以下查询组合行使用 GROUP_CONCAT 函数从 Ordered_Item 和 Ordered_Options 表中:

SELECT
  ordered_item.id AS `Id`,
  ordered_item.Item_Name AS `ItemName`,
  GROUP_CONCAT(Ordered_Options.Value) AS `Options`
FROM
  ordered_item
JOIN
  ordered_options ON ordered_item.id = ordered_options.ordered_item_id
GROUP BY
  ordered_item.id;
登录后复制

此查询使用GROUP_CONCAT 函数用于连接 Ordered_Options 表中 Value 列的值,并以逗号分隔。连接的值将分配给输出中的选项列。

输出:

查询的输出将类似于以下内容:

| Id | ItemName | Options |
| --- | -------- | ------- |
| 1  | Pizza    | Pepperoni,Extra Cheese |
| 2  | Stromboli | Extra Cheese |
登录后复制

注意:

为了适应顺序中的潜在差异选项,请考虑使用 CASE 语句按 Option_Number 对值进行排序,然后再使用 GROUP_CONCAT 连接它们。

以上是如何在 MySQL 中将多个子行连接成一个父行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板