1
私は多少のSQL新人ですが、3つのテーブルの間にピボットを作成しようとしています。私は以下のクエリを持っており、それはMAXの呼び出しとは別に完全に動作します。それは、デフォルト値よりも小さい私の値を無効にします。私は下のテーブルのスクリーンショットを持っています。どのようにこれを修正するための任意のアイデア?MySQLの動的ピボットテーブルでは適切な結果が得られません
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(cc.company_config_key_id = ', cck.id, ', cc.config_value, \'', cck.default, '\')) AS ', cck.company_config_key
)
) INTO @sql
FROM company_config cc
LEFT JOIN company_config_key cck
ON cck.id = cc.company_config_key_id;
SET @sql = CONCAT('SELECT co.id, co.name, ', @sql, ' FROM companies co LEFT JOIN company_config cc ON cc.company_id = co.id GROUP BY co.id');
PREPARE stmt FROM @sql;
EXECUTE stmt;
企業:
company_config_key:
company_config:
結果(企業1と2の二色を設定する必要があります):