两列,相同数据,不同的子句

时间:2016-11-21 19:34:11

标签: mysql sql magento

我需要使用两个不同的WHERE子句语句查询同一列。

我正在与Magento合作,我无法更改表格格式。

表视图:catalog_product_entity_varchar

entity_id | attribute_id | value                |
5         | 60           | Bear Apprentice      |
5         | 86           | bear-apprentice      |
5         | 71           | Item Description     |
5         | 74           | /a/p/apprentice2.jpg |

我希望将其显示为:

entity_id | Item Name            |  img                   |
5         |  Bear Apprentice     | /a/p/apprentice2.jpg   |

最终让attribute_id 6074出现在同一行但是在两个单独的列中。 是否可以对列别名执行WHERE子句?

谢谢!

1 个答案:

答案 0 :(得分:2)

在mySQL中,一种转向方式是使用casemax以及group by。这确实假设entity_Id只能有一个配对值(每个实体每个值1个属性),例如对于实体5,60只能出现一次。

SELECT entity_ID
     , max(case when attribute_Id = 60 then value end) as `Item Name`
     , max(case when attribute_Id = 74 then value end) as img
FROM tableName
WHERE entity_ID = 5
GROUP BY entity_ID