【问题标题】:Wordpress: wp_users & wp_userdata - when I add WHERE clause to SQL, some column data disappearsWordpress:wp_users & wp_userdata - 当我将 WHERE 子句添加到 SQL 时,一些列数据消失了
【发布时间】:2020-12-08 15:42:25
【问题描述】:

当我将以下 WHERE 子句添加到我的 sql 时,我的 first_name 和 last_name 输出为空。当我省略 WHERE 子句时,会填充 first_name 和 last_name。

    SELECT t1.id,
       t1.user_email,
       Max(CASE
             WHEN t2.meta_key = 'first_name' THEN t2.meta_value
           END) AS first_name,
       Max(CASE
             WHEN t2.meta_key = 'last_name' THEN t2.meta_value
           END) AS last_name
FROM   wp_users AS t1
       INNER JOIN wp_usermeta AS t2
               ON t1.id = t2.user_id
WHERE  t2.meta_value LIKE '%subscriber%'
GROUP  BY t1.id,
          t1.user_email  

添加此 WHERE 子句,删除 first_name 和 last_name:

ID 电子邮件 first_name last_name
1 x@x.com

如果我删除 WHERE 子句,我会得到 first_name,last_name 但我只想显示订阅者:

ID 电子邮件 first_name last_name
1 x@x.com John Doe

【问题讨论】:

  • 向我们展示一些示例数据、当前结果和想要的结果 - 全部为格式化文本(无图像)。简化! minimal reproducible example
  • 谢谢 - 我添加了格式化示例
  • WHERE 子句减少返回的行数。它与 您选择 到 SELECT 的列数无关。但是,您的 WHERE 似乎删除了包含 first_name 和 last_name 的行,即 SELECT 列表案例表达式正在寻找的值。
  • 跳过 GROUP BY 和 MAX() 函数一会儿,你就会明白发生了什么。
  • 感谢您的指导-非常感谢

标签: mysql sql wordpress


【解决方案1】:

这对我有用:

SELECT
   id,
display_name AS Company,
   user_email AS Email,
   user_login AS Login,
   
   (
      SELECT
         meta_value 
      FROM
         wp_usermeta 
      WHERE
         wp_usermeta.user_id = wp_users.id 
         AND wp_usermeta.meta_key = 'first_name'
   )
   AS first_name,
   (
      SELECT
         meta_value 
      FROM
         wp_usermeta 
      WHERE
         user_id = wp_users.id 
         AND meta_key = 'last_name'
   )
   AS last_name,
   user_registered 
FROM
   wp_users 
   JOIN
      wp_usermeta 
      ON wp_usermeta.user_id = wp_users.id 
WHERE
   meta_value LIKE '%subscriber%' 
ORDER BY
   `display_name` ASC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 2016-10-07
    相关资源
    最近更新 更多