Я хочу транспонировать результат следующего запроса, который дает приведенный ниже результат.
SELECT pro_dec.entity_id,
attr.attribute_id,
attr.attribute_code AS attribute_name,
pro_dec.VALUE
FROM `magento_eav_attribute` AS attr
INNER JOIN magento_catalog_product_entity_decimal AS pro_dec
ON pro_dec.attribute_id = attr.attribute_id
WHERE attr.`entity_type_id` = 4
AND attr.`backend_type` = 'decimal'
ORDER BY pro_dec.entity_id
//Output1
entity_id attribute_id attribute_name value
376 60 price 25.0000
376 65 weight 1.0000
377 60 price 35.0000
377 65 weight 3.0000
Я пытаюсь получить следующий результат вывода
//Output2
entity_id price weight
376 25.0000 1.0000
377 35.0000 3.0000
У меня естьнаписал довольно длинный вложенный запрос выбора, который дает мне желаемый результат.Есть ли лучший / более простой способ получить запрос для Output2, если у меня есть запрос для Output 1.
// Edit 1 Вот вложенный запрос, который я написал.Это только для двух атрибутов цена и вес.
SELECT ent.entity_id,
ent.type_id,
(SELECT pro_dec.VALUE AS VALUE
FROM `magento_eav_attribute` AS attr
INNER JOIN magento_catalog_product_entity_decimal AS pro_dec
ON pro_dec.attribute_id = attr.attribute_id
WHERE attr.`entity_type_id` = 4
AND attr.`backend_type` = 'decimal'
AND attr.attribute_id = 60
AND pro_dec.entity_id = ent.entity_id
ORDER BY pro_dec.entity_id) AS price,
(SELECT pro_dec.VALUE AS VALUE
FROM `magento_eav_attribute` AS attr
INNER JOIN magento_catalog_product_entity_decimal AS pro_dec
ON pro_dec.attribute_id = attr.attribute_id
WHERE attr.`entity_type_id` = 4
AND attr.`backend_type` = 'decimal'
AND attr.attribute_id = 65
AND pro_dec.entity_id = ent.entity_id
ORDER BY pro_dec.entity_id) AS weight
FROM magento_catalog_product_entity AS ent
// Редактировать 2 Вот запрос Соединения, который снова немного раздут и, возможно, может быть оптимизирован
SELECT ent.entity_id,
ent.type_id,
price.VALUE AS price,
weight.VALUE AS weight
FROM magento_catalog_product_entity AS ent
INNER JOIN (SELECT pro_dec.entity_id AS entity_id,
attr.attribute_id AS attribute_id,
attr.attribute_code AS attribute_name,
pro_dec.VALUE AS VALUE
FROM `magento_eav_attribute` AS attr
INNER JOIN magento_catalog_product_entity_decimal AS
pro_dec
ON pro_dec.attribute_id = attr.attribute_id
WHERE attr.`entity_type_id` = 4
AND attr.`backend_type` = 'decimal'
AND attr.attribute_id = 60
ORDER BY pro_dec.entity_id) AS price
ON price.entity_id = ent.entity_id
INNER JOIN (SELECT pro_dec.entity_id AS entity_id,
attr.attribute_id AS attribute_id,
attr.attribute_code AS attribute_name,
pro_dec.VALUE AS VALUE
FROM `magento_eav_attribute` AS attr
INNER JOIN magento_catalog_product_entity_decimal AS
pro_dec
ON pro_dec.attribute_id = attr.attribute_id
WHERE attr.`entity_type_id` = 4
AND attr.`backend_type` = 'decimal'
AND attr.attribute_id = 65
ORDER BY pro_dec.entity_id) AS weight
ON weight.entity_id = ent.entity_id
WHERE ent.type_id = 'configurable'