来自:mysql技术内幕 姜承尧
旋转及聚合技术,
表:id attname value ...(类型..)
1 a1 v1
2 a1 v2
3 a1 v3
1 a2 va21
3 a3 va31
2 a2 va22
1 a3 va32
--------------------------------------------->>>>>>>>> a1 a2 a3
1 v1 va21 va32
2 v2 va22 null
3 v3 null va31
select id,
max(case when attname=‘a1’ then value end) as a1,
max(case when attname=‘a2’ then value end) as a2,
max(case when attname=‘a3’ then value end) as a3
from t
group by id;