我SQLFiddle:http://sqlfiddle.com/#!2/729a9/1樞轉表只返回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;
我必須說,你刪除了你以前的問題,這個問題只是爲了重新發佈一個新版本的問題而做出的回答。如果您的要求發生變化,您應該向答案的作者發表評論或發佈新的問題。刪除和重新發布是非常粗魯的 - 10K只有用戶 - http://stackoverflow.com/questions/19775409/selecting-dynamic-column-names-from-multiple-tables – Taryn
是'產品'表正確在你的小提琴?對於相同的產品ID,您有藍色褲子和綠色襯衫。 – Barmar
您應該在'product_attributes'中爲'product_id,type'設置一個唯一的鍵值,以防止出現這個問題。 – Barmar