这是我的数据库表。我想将水平键值检索为垂直。
city_id cat_id value
100 1 1000
100 2 2000
101 1 350
101 2 500
102 1 1000
102 2 2000
103 1 10
104 2 5
输出:
city_id catagory1 catagory2
100 1000 2000
101 350 500
102 1000 2000
103 10 0
104 0 5
答案 0 :(得分:3)
您需要一个支点结果:
select
city_id,
max(case cat_id when 1 then value else 0 end) as category_1,
max(case cat_id when 2 then value else 0 end) as category_2
from
my_table
group by
city_id
答案 1 :(得分:1)
我应该告诉你使用GROUP_CONCAT
。
您的所有类别只有一列。你只需要分开它们。
SELECT city_id, GROUP_CONCAT(value SEPARATOR ', ') as categories
FROM your_table
GROUP BY city_id
这是SqlFiddle。