在 MySQL 中将子行合并为一个父行
此处提出的挑战涉及组合来自两个表的数据:Ordered_Item 和 Ordered_Options。目标是为 Ordered_Item 中的每个项目输出一行,包括 Ordered_Options 中与该项目关联的所有选项的串联。
数据库结构
**Ordered_Item** ID | Item_Name 1 | Pizza 2 | Stromboli **Ordered_Options** Ordered_Item_ID | Option_Number | Value 1 43 Pepperoni 1 44 Extra Cheese 2 44 Extra Cheese
建议的解决方案
提供的查询尝试,虽然不是语法正确,演示了使用多个连接的可能方法。但是,使用 GROUP_CONCAT 函数可以实现更有效的解决方案。
GROUP_CONCAT 允许将多行中的值连接到单个字符串中。以下查询利用 GROUP_CONCAT 来实现所需的输出:
select ordered_item.id as `Id`, ordered_item.Item_Name as `ItemName`, GROUP_CONCAT(Ordered_Options.Value) as `Options` from ordered_item, ordered_options where ordered_item.id=ordered_options.ordered_item_id group by ordered_item.id
输出
Id ItemName Options 1 Pizza Pepperoni,Extra Cheese 2 Stromboli Extra Cheese
其他注意事项
以上是如何使用 GROUP_CONCAT 在 MySQL 中将多个子行合并为单个父行?的详细内容。更多信息请关注PHP中文网其他相关文章!