gpt4 book ai didi

mysql - 将一列中的多行选择到不同的列中(SQL)

转载 作者:太空宇宙 更新时间:2023-11-03 11:30:28 25 4
gpt4 key购买 nike

我在 MySQL 中有一个名为 wp_usermeta 的表:(这是一个 wordpress 应用程序,但我不想通过 wordpress 与数据库交互,只能通过 MySQL)

umeta_id    user_id     meta_key      meta_value
-------------------------------------------------------
1 1 nickname Rymdblomma
2 1 firstname Nile
3 1 lastname White
4 1 description Coolest person

等等。我想要的是选择所有这 4 个,但改为放入 4 列。同时,我正在从其他表中选择数据,创建一个包含所有属性的临时表。

SELECT  wp_users.ID AS wp_id,
wp_users.user_email AS email,
wp_users.user_login AS username,
wp_users.user_registered AS regDate,
wp_blogs.path AS subname,
wp_usermeta.meta_value AS firstname,
wp_usermeta.meta_value AS lastname
FROM wp_users
INNER JOIN wp_blogs ON wp_users.ID = wp_blogs.blog_id
LEFT JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id AND
(wp_usermeta.umeta_id = 2 OR wp_usermeta.umeta_id = 3);

(我想包括所有元值,而不仅仅是名字和姓氏,但出于测试目的我将其限制为 2)

这会返回如下内容:

wp_id    email    username    regDate    subname    firstname    lastname
-------------------------------------------------------------------------
1 blabla blabla blabla blabla Nile Nile
1 blabla blabla blabla blabla White White

等等。但我不想要重复的行,而是我想要这样的东西:

wp_id    email    username    regDate    subname    firstname    lastname
-------------------------------------------------------------------------
1 blabla blabla blabla blabla Nile White

我试图到处寻找任何帮助,但还没有找到任何东西。任何帮助,将不胜感激。

最佳答案

要从 wp_usermeta 中获取名字和姓氏到一行中,只需使用不同的 umeta_id = 连接条件连接表两次

SELECT  wp_users.ID AS wp_id,
wp_users.user_email AS email,
wp_users.user_login AS username,
wp_users.user_registered AS regDate,
wp_blogs.path AS subname,
metafirstname.meta_value AS firstname,
metalastname.meta_value AS lastname
FROM wp_users
INNER JOIN wp_blogs ON wp_users.ID = wp_blogs.blog_id
LEFT JOIN wp_usermeta metafirstname ON wp_users.ID = metafirstname.user_id AND metafirstname.umeta_id = 2
LEFT JOIN wp_usermeta metalastname ON wp_users.ID = metalastname.user_id AND metalastname.umeta_id = 3;

关于mysql - 将一列中的多行选择到不同的列中(SQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50485726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com