phpmyadmin 通过将行转换为列属性,将多个不同行合并为一行

ajsxfq5m  于 2022-11-09  发布在  PHP
关注(0)|答案(1)|浏览(152)

我联接了3个表以获得所需的结果,但对于一个用户,我得到了4行(对于一个特定用户,只有两个列属性发生了更改,所有其他属性都相同)。

我所需的输出我希望获取单行,其中包含作为单独列的不同行属性,而不是4个不同行中的不同属性。

这是我的当前查询

SELECT
CONCAT(
    'https://example.com/?search=',
    comment_content
) AS link,
wp_comments.user_id,
user_email,
user_login,
user_nicename,
comment_date as 'Interview Date',
display_name,
user_registered,
meta_key,
meta_value
b1uwtaje

b1uwtaje1#

您需要GROUP BY始终相同的列。
剩下的是一个带有condothion的聚合函数
这叫做支点或翻转

SELECT
CONCAT(
    'https://example.com/?search=',
    comment_content
) AS link,
wp_comments.user_id,
user_email,
user_login,
user_nicename,
comment_date as 'Interview Date',
display_name,
user_registered,
MAX(CASE WHEN meta_key = 'first_name' THEN meta_value END) as 'first_name', 
MAX(CASE WHEN meta_key = 'last_name' THEN meta_value END) as 'last_name', 
MAX(CASE WHEN meta_key = 'user_birthday' THEN meta_value END) as 'user_brthday' 
MAX(CASE WHEN meta_key = 'user_sex' THEN meta_value END) as 'user_sex' 
FROM ...
WHERE ....
GROUP BY link,wp_comments.user_id,
user_email,
user_login,
user_nicename,
`Interview Date`,
display_name,
user_registered

相关问题