【发布时间】:2020-10-25 14:03:54
【问题描述】:
我正在尝试在我的代码中实现一个查询,它使我能够计算收到的评分与每个帖子的评分数之间的平均值,并将帖子从评分最高的帖子排序到另一个帖子平均评分最低
查看下表并实现此查询一切正常。
<?php
$results = $wpdb->get_results("
SELECT comment_id, avg(meta_value) avg_meta_value
FROM {$wpdb->prefix}commentmeta
WHERE {$wpdb->prefix}commentmeta.meta_key = 'rating'
GROUP BY comment_id
ORDER BY avg_meta_value desc");
foreach ($results as $result)
{
echo $result->comment_id.'<br>';
}
当我想与comments 表进行左连接时,就会出现问题:
即使查询正确:
<?php
$results = $wpdb->get_results("
SELECT comment_id, avg(meta_value) avg_meta_value
FROM {$wpdb->prefix}commentmeta
LEFT JOIN {$wpdb->prefix}comments
ON {$wpdb->prefix}commentmeta.comment_id = {$wpdb->prefix}comments.comment_ID
WHERE {$wpdb->prefix}commentmeta.meta_key = 'rating'
GROUP BY comment_id
ORDER BY avg_meta_value desc");
foreach ($results as $result)
{
echo $result->comment_id.'<br>';
}
?>
做print_r($ results); 我得到:Array( )
而且我不明白为什么,了解这一步对于我与post表进行下一次join是必不可少的,这样我才能把所有的值都取出来,为什么我得到array()?
我该如何解决?
....和
var_dump($result); return me `NULL`
【问题讨论】:
-
您确定您复制的代码正确吗?因为有:
ON $wpdb->prefix}应该是ON {$wpdb->prefix}- 你错过了左大括号 -
@Choinek 我解决了这个问题,谢谢,但我有相同的返回数组()
-
你只修复了一个地方,还有另外两个地方缺少左括号
-
@Choinek 这不是问题!!!!