gpt4 book ai didi

mysql - 列到行转换: MySQL

转载 作者:行者123 更新时间:2023-11-29 22:58:30 25 4
gpt4 key购买 nike

我有一个 Multi-Tenancy 模型,并尝试显示一个输出,其中一个表的一列变成输出中的一行。

我有 3 个表 - 1 个数据表、1 个元数据表和一个扩展表。

这是我的查询:

set @sql=NULL;
SELECT group_concat(CONCAT(
'MAX(If(EXTLABEL = ''', EXTLABEL, ''', VALUE, NULL)) AS ',EXTLABEL))
into @sql
FROM TENANT_METADATA, TENANT_EXTENSIONTABLE
WHERE TENANT_METADATA.EXTENSION_ID = TENANT_EXTENSIONTABLE.EXTENSION_ID;

SET @sql=CONCAT('SELECT TENANT_NAME AS TENANT_TABLE, ', @sql, '
FROM TENANT_DATATABLE, TENANT_METADATA, TENANT_EXTENSIONTABLE
WHERE TENANT_DATATABLE.RECORD_ID=TENANT_EXTENSIONTABLE.RECORD_ID
AND TENANT_METADATA.EXTENSION_ID = TENANT_EXTENSIONTABLE.EXTENSION_ID
group by TENANT_DATATABLE.TENANT_NAME');
PREPARE stmt FROM @sql;
Execute stmt;
DEALLOCATE prepare stmt;

在我的输出中,我需要列名称为“Tenant_Table、ExtLABEL1、ExtLABEL2、ExtLABEL3 等。并且 VALUE 字段应显示 EXTLABEL 列的值。

我的查询似乎从不同的表中获取了正确的值,但是当我执行Prepare stmt时,它说我有语法错误,但我无法识别错误。任何帮助将非常感激。谢谢。

最佳答案

列到行:UNION ALL

( SELECT Tenant_Table, 1, ExtLABEL1 AS EXTLABEL FROM ... )
UNION ALL
( SELECT Tenant_Table, 2, ExtLABEL2 AS EXTLABEL FROM ... )
UNION ALL
( SELECT Tenant_Table, 3, ExtLABEL3 AS EXTLABEL FROM ... )
ORDER BY 1,2;

关于mysql - 列到行转换: MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28616280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com