我需要使用两个不同的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 60
和74
出现在同一行但是在两个单独的列中。
是否可以对列别名执行WHERE子句?
谢谢!
答案 0 :(得分:2)
在mySQL中,一种转向方式是使用case
和max
以及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