如何在WordPress中加入空的usermeta?

时间:2019-08-28 10:19:46

标签: mysql wordpress

我正在使用WordPress。

我有5个用户的wp_users表。

在我的wp_usermeta里面,有5个用户,有3个,有一个meta_key,叫做age

如何获得所有5位用户的年龄值(如果用户没有年龄,则为null),

ID|username|age
1|user1|18 
2|user2|18 
3|user3| 
4|user4|18 
5|user5|

重要:我必须使用MySQL查询,不能使用WP函数。

2 个答案:

答案 0 :(得分:2)

您需要LEFT JOIN才能从wp_users表(左侧表)中获取所有行,而与wp_usermeta表(右侧表)中的任何匹配行无关。

meta_key字段在右侧表中;如果您在该字段上指定WHERE条件,它将有效地成为INNER JOIN。您需要在ON子句中指定以下条件:

select u.ID, u.user_email, m.meta_value 
from wp_users AS u 
left join wp_usermeta AS m 
       on u.ID = m.user_id 
          AND m.meta_key= 'user_updated'

此外,在多表查询的情况下,最好使用Aliasing来消除代码的歧义和可读性。

答案 1 :(得分:1)

在这种情况下,您不应使用左连接表中的列作为INNER JOIN。 。您应该将这些条件移至左连接ON子句

select wp_users.ID, wp_users.user_email, wp_usermeta.meta_value 
from wp_users 
left join wp_usermeta on wp_users.ID=wp_usermeta.user_id
      AND wp_usermeta.meta_key= 'user_updated'