Wordpress SQL JOIN query

时间:2013-01-11 作者:M3o

Hi我试图在同一个查询调用中运行2个查询。

        // send the query

global $wpdb;
$commentQ = "SELECT * FROM $wpdb->comments " . $whereClause . $orderBy;
$comments = $wpdb->get_results( $commentQ, ARRAY_A);
到目前为止,它是可行的,但当我尝试运行2个查询时,它失败了。我想做的是我想跑步:

**SELECT *
FROM `wp_88_commentmeta`
ORDER BY `wp_88_commentmeta`.`meta_value` ASC
LIMIT 0 , 30**
我试图只从该表中获取meta\\u值。

所以我的问题是,我如何在同一个调用中调用2个查询,如果有更好的方法可以做到这一点?

EDIT:

我想用commentmeta加入$wpdb->评论。我只是想得到字段“meta\\u value”。

    global $wpdb;
$commentQ = "SELECT * FROM $wpdb->comments " . $whereClause . $orderBy;
$comments = $wpdb->get_results( $commentQ, ARRAY_A);

// build the string

$commentString = "";
$count = 0;
if( $comments ){
    $first = true;
    foreach( $comments as $row ){
        if( $first ){
            // column labels
            foreach ( $row as $col => $value ){
                    //$commentString .= $col . chr( 9 );

After i join the tables i want to get "meta_value" from wp_commentmeta_88 and insert it instead of "comment_author"

                    // Column Author
                if($col == \'comment_author\') {
                $commentString .= \'User Meta        \';
                }           

            // Column IP
            if($col == \'comment_author_IP\') {
                $commentString .= \'   IP    \';
            }       

            // Column date
            if($col == \'comment_date\') {
                $commentString .= \'                Datum    \';
            }   

            // Column comment
            if($col == \'comment_content\') {
                $commentString .= \'                Meddelande   \';
            }                                           

            }
            $commentString .= chr( 13 );
            $first = false;
        }

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

如果要使用SQL执行此操作,请使用子查询。

SELECT *,
  (SELECT meta_value 
    FROM wp_commentmeta 
    WHERE meta_key = \'your-meta-key\' 
    AND wp_commentmeta.comment_id = wp_comments.comment_ID LIMIT 1) as comment_author 
FROM wp_comments
而不是*, 枚举需要但忽略的字段comment_author. 明显地$wpdb 函数以保持表名称的正确性。

SO网友:Ninda

使用MySQL关键字NATURAL RIGHT JOIN

SELECT *  
  FROM table_name1 NATURAL RIGHT JOIN table_name2;
您可以添加WHERE,ORDER BY too

结束

相关推荐

Wp-plugins(必须使用Plugins)URL是否可以在unctions.php中使用?

wp插件(必须使用插件)URL是否可以作为在函数中使用的目标。php?我有一个mu函数。mu plugins文件夹中的php文件。一个函数调用javascript文件(alerts.js) 位于example.com/wp-content/mu-plugins/js/. 如何在我的函数中定位mu插件文件夹?目前,我正在使用get_site_url() . \'/wp-content/mu-plugins/js/alerts.js\',虽然与问题不完全相关,但这是用于调用javascript文件的完整函数: