$wpdb-加入没有结果

时间:2013-10-08 作者:Mayeenul Islam

对于我客户的一个WP站点,我正在制作一个插件,使用db查询。我有两个专门用于插件的自定义表:

  • user_req — 存储用户选择的帖子以及一些自定义字段的数据
  • user_req_admin — 使用特殊外键存储一些非常基本的内容user_req_id.
Table: user_req
user_req view

Table: user_req_admin
user_req_admin view

我的计划是Join 5 tables 使用单个查询:

用户请求管理员将通过以下方式加入:

  • {$wpdb->user_req_admin}.user_req_id 连接方式{$wpdb->user_req}.id (使用用户请求ID连接两个db)
  • {$wpdb->user_req}.user_id 连接方式{$wpdb->users}.ID (使用User\\u id获取用户详细信息)
  • {$wpdb->user_req}.post_id 连接方式{$wpdb->posts}.ID (使用post_id数组中的s)
  • {$wpdb->user_req}.post_id 连接方式{$wpdb->postmeta}.post_id (使用post_id但是对于一家初创公司,我尝试连接前两个表(#1和#2),最终失败了!

    我是这样尝试的:

    global $wpdb;
        $wpdb->print_error();
        $inbox_query = "SELECT
                              {$wpdb->user_req}.id,
                              {$wpdb->user_req}.dt_usr_sent,
                              {$wpdb->user_req}.dt_usr_rcvd,
                              {$wpdb->user_req}.user_id,
                              {$wpdb->user_req}.post_id,
                              {$wpdb->user_req}.qty,
                              {$wpdb->user_req}.msg_user,
                              {$wpdb->user_req}.msg_admin,
                              {$wpdb->user_req}.price,
                              {$wpdb->user_req_admin}.user_req_id
                            FROM
                              {$wpdb->user_req}
                            LEFT JOIN
                              {$wpdb->user_req_admin}
                            ON
                              {$wpdb->user_req}.id = {$wpdb->user_req_admin}.user_req_id";
        $inbox_rows = $wpdb->get_results( $inbox_query, OBJECT );
    
    RESULT
    <?php var_dump( $inbox_rows ); ?> 显示:

    array
    empty

    » 我的查询有什么问题?

    参考文献LEFT JOIN, INNER OUTER JOIN, LEFT OUTER JOIN is driving me crazy. Please help?

  • Querying Email Addresses for a List of Users with Same Last Name?

1 个回复
最合适的回答,由SO网友:birgire 整理而成

我看不出您在哪里定义自定义表名。

请尝试:

$wpdb->user_req = $wpdb->prefix . \'user_req\';
以及

$wpdb->user_req_admin = $wpdb->prefix . \'user_req_admin\';

结束

相关推荐

如何修改此$wpdb查询以接受POST状态数组

我正在使用来自this accepted 答案,它获取自定义字段键的所有值(十字柱)。如何修改它以允许post状态数组?function get_meta_values( $key = \'\', $type = \'post\', $status = \'publish\' ) { global $wpdb; if( empty( $key ) ) return; $r = $wpdb->get_col( $wpd