私の SQLFiddle: http://sqlfiddle.com/#!2/729a9/1
ご覧のとおり、テーブルには 2 つの行があるにもかかわらず、1 つの行が返されます。
それは最高のIDでもあるので、何か関係があるのでしょうか?
申し訳ありませんが、丸太のように困惑しています。
SQL:
SELECT GROUP_CONCAT(distinct
CONCAT(
'max(case when `pat`.`name` = ''',
`pat`.name,
''' then `pa`.`value` end) as `',
`pat`.name, '`'
)
) INTO @list
FROM `product_attribute_types` pat;
SET @sql = CONCAT('select ', @list, '
from `products` `p`
LEFT JOIN `product_attributes` `pa`
ON `p`.id=`pa`.`product_id`
LEFT JOIN `product_attribute_types` `pat`
ON `pa`.`type`=`pat`.`id`
');
PREPARE stmt FROM @sql;
EXECUTE stmt;