php - PHP | left join avg query 给我 Array()
问题描述
我正在尝试在我的代码中实现一个查询,使我能够计算收到的评分和每个帖子的评分数之间的平均值,并将帖子从评分最高的帖子排序到评分最低的帖子平均评分
查看下表并实现此查询一切正常。
<?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`
解决方案
也许你需要换SELECT comment_id, avg(meta_value) avg_meta_value
行SELECT comment_id, avg(meta_value) AS avg_meta_value
推荐阅读
- ruby - 使用 `alias` 关键字增强方法
- select - Understanding select from channels with and without goroutine
- javascript - 新反应版本的语法是什么
- python-3.x - 2d numpy 数组到 3 列 DataFrame
- typescript - 在打字稿中传递对象
- android - android 设备监视器在我的 android studio 3.0.1 中不可用
- reactjs - 如何在 React 状态下更新数组中特定索引处的对象?
- wpf - Combobox selectedindex =-1 也会删除可编辑组合框中写入的文本
- c++ - 填充窗口外背景QT
- vue.js - VueJS - 动态状态管理多个实例