在 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中文网其他相关文章!