我不明白您为什么在
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语句中的值,而不要使用一些多余的,不必要的子查询中的值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)