产品名称
| 产品标识|产品名称|
| - -|- -|
| 10个|橙子|
| 十一|苹果公司|
| 十二个|胡萝卜|
| 十三个|生菜|
类别
| 目录ID|目录名|
| - -|- -|
| 20个|水果类|
| 二十一个|蔬菜类|
项目名称
| 项目标识|属性类型|属性值|
| - -|- -|- -|
| 30个|fk_产品标识|10个|
| 30个|fk类别标识|20个|
| 三十一个|fk_产品标识|十一|
| 三十一个|fk类别标识|20个|
| 三十二个|fk_产品标识|十二个|
| 三十二个|fk类别标识|二十一个|
我尝试透视Item,然后将其与Product和Category进行左联接,以获得:
| 项目标识|fk_产品标识|fk类别标识|产品名称|目录名|
| - -|- -|- -|- -|- -|
| 30个|10个|20个|橙子|水果类|
| 三十一个|十一|20个|苹果公司|水果类|
| 三十二个|十二个|二十一个|胡萝卜|蔬菜类|
不幸的是:
SELECT
item_id,
MAX(CASE WHEN property_type = 'fk_prod_id' THEN property_value END) AS fk_prod_id,
MAX(CASE WHEN property_type = 'fk_cat_id' THEN property_value END) AS fk_cat_id
FROM item AS i
LEFT JOIN product AS p ON p.prod_id = fk_prod_id
LEFT JOIN category AS c ON c.cat_id = fk_cat_id
GROUP BY item_id;
#Error Code: 1054. Unknown column 'fk_prod_id' in 'on clause'
在上述情况下,如何在数据透视表之后左联接其他表?
2条答案
按热度按时间e5nqia271#
如果
(item_id, property_type)
被定义为UNIQUE(这是合理的),那么连接2个Item表副本会更简单,甚至可能更快:xt0899hw2#