返回与wp_users表中属于用户ID的元密钥wp_usermeta表关联的元值

时间:2017-07-17 19:26:31

标签: mysql wordpress mysqli

我正在尝试使用以下查询从wp_users和wp_usermeta表中导出用户信息:

SELECT a.ID, a.display_name, a.user_login, a.user_email FROM wp_users a, wp_usermeta b  WHERE a.ID=(SELECT b.user_id WHERE b.meta_key = 'wp_s2member_custom_fields' AND b.meta_value LIKE '%companyName%')

这有效但如何返回与meta_key相关联的meta_value 'wp_s2member_custom_fields'?

基本上我想为属于公司'companyName'的每个用户返回一行,该行包含来自wp_users(id,email,fname,lname)的信息以及来自wp_usermeta表的信息(wp_s2member_custom_fields)。

期望的输出:

wp_users.ID | wp_users.display_name | wp_users.login | wp_users.email | wp_usermeta.wp_s2member_custom_fields.meta_value

1 个答案:

答案 0 :(得分:0)

您应该使用join(未经测试):

SELECT a.ID, a.display_name, a.user_login, a.user_email, b.meta_value FROM wp_users a JOIN wp_usermeta b ON a.ID = b.user_id WHERE b.meta_key = 'wp_s2member_custom_fields' AND b.meta_value LIKE '%companyName%')

但是,由于您使用的是WordPress,因此可以查看WP_User_Queryget_user_meta

我希望您使用global $wpdb;而不是创建自己的数据库连接。 https://codex.wordpress.org/Class_Reference/wpdb

相关问题