Advanced Wordpress SQL Query

时间:2017-08-12 作者:Jaroslav Huss

4小时后,我无法找到解决方案,即如何正确编写SQL查询以回送两个表中的数据。

我有两个表,需要“连接”它们的数据。

第一个表是wp_users 第二个是wp_usermeta.

从…起wp_users 我只需要user_email (应该是这样的SELECT user_email FROM wp_users).

但我需要加入另一个叫做wp_usermeta 我需要很多东西first_name, last_name, phone_number, schoolid, schoolname

问题是:-)

在里面wp_usermeta 我需要从两列读取数据-meta_keymeta_value. 柱meta_key 存储变量的名称(例如schoolid 和列meta_value 存储meta_key (例如XXXXXXXX).

我有以下代码:

 <table>
        <tr><th>Email Address</th><th>First Name</th></tr>
    <?php
$teacher_table = "SELECT wp_users.user_email, wp_usermeta.meta_value 
 FROM wp_users INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id
 WHERE wp_usermeta.meta_key = \'nickname\'";


$results_table_main = $wpdb->get_results($teacher_table);

 foreach ($results_table_main as $value){
  echo \'<tr><td>\'.$value->user_email .\'</td>\';
 echo \'<td>\'.$value->meta_value .\'</td>\';
 } ?>
    </table>
这是可行的,但我不知道如何修改它以获得更多meta_keys 用他们的meta_values.

有什么想法吗?

1 个回复
SO网友:ClemC

在WP中,您很少需要“编写SQL查询”,除非您使用自定义表,而是使用其API。。。

WP_User_Query 将为您加入all 元数据附加到每个用户并返回给您普通的用户对象,那么为什么不使用它呢?

此外,请参见get_user_meta()...

结束