繁体   English   中英

从键值表创建MYSQL多列视图?

[英]Create MYSQL multi-column view from key val table?

我有一个简单的MYSQL表,它具有idfield_keyfield_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内部的视图来完成吗?

一种方法是条件聚合:

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM