SQL多行作为列(优化)

SQL多行作为列(优化),第1张

SQL多行作为列(优化)

我不明白您为什么在

group_concat()
语句中使用子查询这不会生成您真正想要运行的代码吗?

SET @sql = NULL;SELECt    GROUP_CONCAt(DISTINCT        CONCAt('MAX(CASE WHEN ckm.colkey = ', colkey, ' THEN ccd.value END) AS ',      CONCAt('ExtraColumn_', colkey, ''))    ) INTO @sqlFROM test_customkeymapping;SET @sql = CONCAt('SELECt c.Name, ', @sql, '         FROM customers c        LEFT JOIN customercustomdatarels ccdr          ON c.Id = ccdr.customer        LEFT JOIN customdatas cd          ON cd.Id = ccdr.customdata        LEFT JOIN test_customkeymapping ckmON cd.key = ckm.customkey        GROUP BY c.Id');PREPARE stmt FROM @sql;EXECUTE stmt;

注意:这未经测试,但是想法是相同的。在工作中使用main

from
语句中的值,而不要使用一些多余的,不必要的子查询中的值。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5649777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存