在此先感谢,我似乎无法理解!
我有两张桌子
Ordered_Item
ID | 项目名称 1 | 比萨 2 | 斯特龙博利 Ordered_Options
Ordered_Item_ID | Option_Number | 值 1 43意大利辣香肠 1 44额外的奶酪 2 44额外的奶酪 我想要输出的是mysql查询,可以达到这种效果
输出量
ID | 项目名称| 选项_1 | 选项_2 1披萨意大利辣香肠额外奶酪 2 Stromboli NULL额外奶酪 我尝试了很多选项,大多数以语法错误结尾,我尝试了group_concat,但这并不是我真正想要的。下面有一个简单的例子,我认为这可能是一个开始。我需要选项每次都按相同顺序排列。在收集信息的程序中,没有办法可靠地确保将要发生。是否可以根据选件号将它们连接在一起。我也知道我永远不会有5个以上的选择,因此静态解决方案会起作用
Select Ordered_Items.ID, Ordered_Items.Item_Name, FROM Ordered_Items JOIN (SELECT Ordered_Options.Value FROM Ordered_Options Where Option_Number = 43) as Option_1 ON Ordered_Options.Ordered_Item_ID = Ordered_Item.ID JOIN (SELECT Ordered_Options.Value FROM Ordered_Options Where Option_Number = 44) as Option_2 ON Ordered_Options.Ordered_Item_ID = Ordered_Item.ID; 谢谢!乔
最简单的方法是在这里使用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的大小限制:
SET SESSION group_concat_max_len = 8192;来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。