我有一个简单的MYSQL表,其中包含 id , field_key , field_val 列。我的目标是根据field_key数据创建一个多列表或视图。
基本上,
**id,key,val**
1,fname,joe
1,lname,smith
2,fname,sally
2,lname,smith
到
**id,fname,lname**
1,joe,smith
2,sally,smith
目前,我正在使用查询来获取DISTINCT ID以及所有DISTINCT field_keys。然后,在PHP中,我循环遍历id,然后内部循环field_keys以填充表:SELECT field_val FROM pair_table其中id =:id和field_key =:field_key
这可以作为MYSQL内部的视图来完成吗?
答案 0 :(得分:0)
执行此操作的一种方法是条件聚合:
select id,
max(case when key = 'fname' then val end) as fname,
max(case when key = 'lname' then val end) as lname
from table t
group by id;