1
我有这些表的MySQL数据库:MySQL的:行到列动态
表产品:
+-------------+
| id |
+-------------+
| 1 |
| 2 |
+-------------+
表ATTRIBUTE_VALUES:
+-------------+----------+-----------+
| product_id | key | value |
+-------------+----------+-----------+
| 1 | title | Orange |
| 1 | code | O125 |
| 2 | title | Pizza |
| 2 | code | O138 |
+-------------+----------+-----------+
而且我有这样的MySQL查询:
SELECT products.id,
MAX(CASE WHEN attribute_values.key = 'title' THEN attribute_values.value END) title,
MAX(CASE WHEN attribute_values.key = 'code' THEN attribute_values.value END) code
FROM products JOIN attribute_values ON products.id = attribute_values.product_id
GROUP BY products.id;
有了这个ou tput的:
+-------------+----------+-----------+
| id | title | code |
+-------------+----------+-----------+
| 1 | Orange | 0125 |
| 2 | Pizza | O138 |
+-------------+----------+-----------+
我希望脚本,并且不需要显式指定键(标题和代码在这种情况下)产生用于attribute_values.key的每个不同的值一列。
即pseudoscript:
SELECT products.id
generate column foreach distinct attribute_values.key
FROM products JOIN attribute_values ON products.id = attribute_values.product_id
GROUP BY products.id;
在MySQL这可能吗?
感谢您的任何努力:)