我与MySQL和ActiveRecord直接生成的计数之间存在差异。在我的服务器(Rails)日志中显示的查询是:
SELECT u.id, AVG(u.price) AS avg_price, COUNT(u.id) AS unit_count
FROM `properties`
INNER JOIN units u ON properties.id = u.property_id
返回的结果是(1,200,1),这不是我所期待的。但是,当我直接将查询复制并粘贴到MySql中时,我得到(1,200,25),这正是我所期待的。当查询完全相同时,返回结果不同的原因是什么?我目前正在使用Rails 4和MySql 5.6.33。
编辑:
Property
.select("u.id, AVG(u.price) AS avg_price, COUNT(u.id) AS unit_count")
.joins("INNER JOIN units u ON properties.id = u.property_id")