db的结构如下:
id | meta-key | meta-value
1 | client | John
1 | bday | today我想让它成为
id | client | bday
1 | John | today有许多行,比如client和bday,我想在显示或插入到另一个表时将它们中的一些转换为列
我尝试了这样的东西:
SELECT p1.meta_value, wph0_posts.post_title, p2.meta_value as client, p3.meta_value as end_date, p4.meta_value as description
FROM wph0_postmeta p1
INNER JOIN wph0_posts ON p1.post_id = wph0_posts.ID
INNER JOIN wph0_postmeta p2 ON
p1.post_id = p2.post_id AND
p2.meta_key = 'client'
INNER JOIN wph0_postmeta p3 ON
p1.post_id = p3.post_id AND
p3.meta_key = 'end_date'
INNER JOIN wph0_postmeta p4 ON
p1.post_id = p4.post_id AND
p4.meta_key = 'description';能给我点建议吗?对db‘’es非常陌生
发布于 2020-06-27 08:19:14
Thx要获得帮助,请执行以下操作:
SELECT wph0_postmeta.post_id,
GROUP_CONCAT( if(wph0_postmeta.meta_key='client',wph0_postmeta.meta_value,NULL) ) AS Nume,
GROUP_CONCAT( if(wph0_postmeta.meta_key='end_date',wph0_postmeta.meta_value,NULL) ) AS Descriere
FROM wph0_postmeta GROUP BY wph0_postmeta.post_id我只从wph0_postmeta中提取了名称和一些东西,并使用了if语句。我现在可以添加另一个group_concat,并从一个meta_key添加另一个列,我在这里获得了pivots的链接:
https://stackoverflow.com/questions/62603948
复制相似问题