mysql - AVG/COUNT MySQL 查询不起作用

标签 mysql

我在 MySQL 查询方面不是很有经验,所以我可能做错了什么。 简化我的查询是这样的:

SELECT item.*, AVG(itemRating.rating) as 'rating', COUNT(itemRating.rating) as 'ratingCount' 
  FROM item, itemRating 
 WHERE item.id IN (...) 
   AND itemRating.item_fk = item.id 
 GROUP BY itemRating.item_fk

它工作正常,除非项目没有评级(itemRating 表中没有记录)。有什么办法可以在不丢失信息的情况下解决这个问题吗?

最佳答案

SELECT item.id, 
       AVG(itemRating.rating) as 'rating', 
       COUNT(itemRating.rating) as 'ratingCount' 
  FROM item
  LEFT JOIN itemRating ON itemRating.item_fk = item.id 
 WHERE item.id IN (...) 
 GROUP BY item.id

关于mysql - AVG/COUNT MySQL 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26295015/

相关文章:

php - 使用 phpexcel 选择所有列将 xlsx 导入到 mysql

php - 从数据库中组织值的代码效率

PHP/MySQL 获取表中每隔一行的问题/停止添加记录两次

mysql - 从一个表中选择真实的 IF 条件,从另一个表中选择 FALSE?

mysql - 如何通过搜索语句JSP使用下拉列表从mysql检索值?

mysql - 将时间戳插入数据库 + 7 天

mysql 在 select 语句中创建一个硬编码值

php - 如何在不从 View 调用 Controller 的情况下在 codeigniter 中显示数据库中的内容?

php - 如何从父子(邻接)表中枚举 PHP 中的分层目录

php - Sphinx 将普通旧索引转换为实时 (RT) 索引