两列,相同的数据,不同的 Where 子句
Posted
技术标签:
【中文标题】两列,相同的数据,不同的 Where 子句【英文标题】:Two Columns, Same Data, Different Where Clauses 【发布时间】:2016-11-21 19:34:11 【问题描述】:我需要使用两个不同的 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 子句?
谢谢!
【问题讨论】:
你知道attribute_id
吗?
@Shaharyar 是的,我想在同一行的两个不同列中获取属性 ID 60 和 74。
【参考方案1】:
在 mysql 中,一种透视方法是使用 case
和 max
和 group by
。这确实假设 entity_Id 只能有一个配对值(每个实体每个值 1 个属性),例如60 对于实体 5 只能出现一次。
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
【讨论】:
以上是关于两列,相同的数据,不同的 Where 子句的主要内容,如果未能解决你的问题,请参考以下文章