最初是基于行中的列值在查询时询问的。
我有小提琴http://sqlfiddle.com/#!9/362f1cd/2。
我有一个customer表,其中包含id、name、mobile、email等列,还有一个weekly summary表,其中包含id、customerid、day\u of \u week、type\u of \u food、name\u of \u food等列。食物栏的类型有早餐、午餐、晚餐、蛋白质、零食等值(可以是n种)。
我需要的是这样一份报告
客户姓名,手机,电子邮件,早餐,午餐,早餐2,零食1,零食2(可高达(n)
acc1,mob1,email1,早餐食物名称,午餐食物名称,晚餐食物名称。。。acc2,mob2,email2,早餐食物的名称,午餐食物的名称,晚餐食物的名称。。。
请记住,同一天可以有多种食物,比如一个账户有2份早餐和3份零食。
请注意,问题@mysql pivot row into dynamic number of columns只会有助于获取元素的计数(类型为\u of \u food),而我需要将它们分开(以及名称为\u of \u food的值),以防有2个条目(甚至是同一类型的条目)。
编辑:基于sqlfiddle添加预期结果
姓名、手机、电子邮件、白天、早餐、零食、午餐、零食1、晚餐、零食2
账号1234,acc1@yopmail.com,周一,鸡蛋,薯条,米饭,苹果,面包,豆腐
账号1234,acc1@yopmail.com星期二,面包,-,-,-,牛奶-
账号2345,acc2@yopmail.com,周一,鸡蛋,薯条,米饭,苹果,面包-
账号2345,acc2@yopmail.com周二,-,凝乳,面包,-,牛奶-
1条答案
按热度按时间mitkmikd1#
我会用
group_concat
功能:演示:http://sqlfiddle.com/#!9/362f1cd/3号