2016-02-25 58 views
0

我有这个疑问,现在MySQL的INNER后附加条件JOIN,ON

global $wpdb; 
$interval = "1 WEEK"; 
$now = current_time('mysql'); 
$top4=$wpdb->get_results('SELECT ID, post_title, post_name from `'.$wpdb->prefix.'popularpostssummary`  
INNER JOIN `'.$wpdb->prefix.'posts` ON `postid`=`ID` 
ORDER BY `pageviews` DESC 
LIMIT 4;', ARRAY_A); 

我要添加下列条件的,什么是在代码中加入他们的正确方法?

WHERE post_type = post 
AND last_viewed > DATE_SUB('{$now}', INTERVAL {$interval}) 

post_type是在”。$ wpdb-> prefix.'posts while last_viewed is under '.$wpdb->prefix.'popularpostssummary

回答

1
global $wpdb; 
$interval = "1 WEEK"; 
$now = current_time('mysql'); 
$sql = 
    'SELECT p.ID, p.post_title, p.post_name 
    FROM `' . $wpdb->prefix . 'popularpostssummary` AS pps 
     INNER JOIN `' . $wpdb->prefix . 'posts` AS p ON pps.`postid`= p.`ID` 
    WHERE p.post_type = "post" 
     AND pps.last_viewed > DATE_SUB("' . $now . '", INTERVAL ' . $interval . ') 
    ORDER BY pps.`pageviews` DESC 
    LIMIT 4;'; 
echo $sql; exit; 
$top4 = $wpdb->get_results($sql, ARRAY_A); 
+0

感谢您的答复佩斯先生,不幸的是我得到了服务器错误500 –

+0

我觉得单引号围绕“{$ now}”干扰解析PHP。我修改了答案,以便输出SQL。你有可以用来对数据库运行查询的SQL客户端吗? –

+0

我这样做,但如何全球$ wpdb,我认为它不会在客户端 –