我正在尝试使用以下查询从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
答案 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_Query和get_user_meta
我希望您使用global $wpdb;
而不是创建自己的数据库连接。 https://codex.wordpress.org/Class_Reference/wpdb