mysql中多行的动态列
我有一个保存客户详细信息的表格:mysql中多行的动态列,mysql,Mysql,我有一个保存客户详细信息的表格: customer cid| name | email | and so on.. 1 annu .... 2 rita .... 3 tina .... 事件表保存不同的事件: eid | name 1 abc 2 xyz 3 pqr 现在,一个客户可以对多个活动感兴趣。 事件分配表如下所示: eid |cid 1 1 2 1 3 2 2 3 cid
customer
cid| name | email | and so on..
1 annu ....
2 rita ....
3 tina ....
事件表保存不同的事件:
eid | name
1 abc
2 xyz
3 pqr
现在,一个客户可以对多个活动感兴趣。
事件分配表如下所示:
eid |cid
1 1
2 1
3 2
2 3
cid | cat_id | date | eid | edition
1 1 2/2/2015 1 v1
1 2 3/2/2015 2 v1
2 3 3/2/2015 3 v1
1 2 4/2/2015 1 v2
2 2 4/2/2015 3 v1
1 1 5/2/2015 1 v2
接下来是包含所有目录类型的目录表
cat_id | cat_name
1 food
2 clothing
3 accessories..
现在,根据客户感兴趣的事件将目录发送给每个客户,发送目录的详细信息保存在cat_sent表中,如下所示:
eid |cid
1 1
2 1
3 2
2 3
cid | cat_id | date | eid | edition
1 1 2/2/2015 1 v1
1 2 3/2/2015 2 v1
2 3 3/2/2015 3 v1
1 2 4/2/2015 1 v2
2 2 4/2/2015 3 v1
1 1 5/2/2015 1 v2
现在,目录被发送给各个活动的客户。正如您所看到的,一个目录可以发送给具有相同活动但版本不同的同一客户。
现在我想要的是通过连接上面所有的表得到如下输出
cid | eid | food | clothing | accessories etc..
1 1 **2/2/2015-v1/5/2/2015-v2** 4/2/2015-v2 null
1 2 null 3/2/2015-v1 null
2 3 null 4/2/2015-v1 3/2/2015-v1
目录名称应该是动态列,日期和版本作为它们的值与按客户ID和事件ID分组的分隔符“-”连接在一起。
如果具有相同事件的客户有多个相同的目录,则应使用分隔符“/”对其进行分组和连接,如上图所示(cid->1带eid->1和两个相同的cat_id)
如果缺少任何目录的数据,则应将其显示为空。请查看以下答案:您需要的是数据透视表。在这里搜索它。关于这件事有很多问题和答案。