Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rails 3-sql查询问题_Sql_Ruby On Rails 3_Join_Model_Group By - Fatal编程技术网

Rails 3-sql查询问题

Rails 3-sql查询问题,sql,ruby-on-rails-3,join,model,group-by,Sql,Ruby On Rails 3,Join,Model,Group By,我有以下Rails 3语法的sql查询: variab = Model.joins(:photo).where('photos.user_id = ?', user).group('model.photo_id').count 在模型表中,我有以下数据: +----+----------+----------+---------------------+----------+ | id | photo_id | created_at | updated_at

我有以下Rails 3语法的sql查询:

    variab = Model.joins(:photo).where('photos.user_id = ?', user).group('model.photo_id').count
模型
表中,我有以下数据:

+----+----------+----------+---------------------+----------+
| id | photo_id |  created_at          | updated_at         |
+----+----------+----------+---------------------+----------+
| 31 |      210 | 2011-09-16 14:38:22 | 2011-09-16 14:38:22 |
| 32 |      210 | 2011-09-16 14:38:22 | 2011-09-16 14:38:22 |
| 33 |      211 | 2011-09-16 15:03:26 | 2011-09-16 15:03:26 |
+----+----------+----------+---------------------+----------+
我试图得到值2——我需要得到唯一的照片id数据的计数。 但是如果我使用上面的sql查询,那么输出是**21022111**-我不明白,这个数字是什么意思。。。我假设输出应该是2,但我不明白,为什么不


如果有人能帮我解决这个问题,我真的很高兴。。。非常感谢

活动记录正在返回照片id/计数对,即照片id 210计数2,照片id 211计数1

如果要计算给定用途的不同照片的数量,请尝试:

Model.select(:photo_id).where(:user_id => user.id).count(:distinct => true)

谢谢史蒂夫的回复。此示例生成此查询:
照片上的
模型`左外连接
照片
中选择COUNT(DISTINCT
模型
),这在我的脚本中给出结果0,但在mysql的终端中给出数字3。但是正确的输出应该是2。也许我误解了你的模型。用户id是否在模型或照片表上?如果它在照片表上,则答案中的where子句是错误的。如果用户id键在照片表上,则需要执行以下操作:Model.select(:photo_id).joins(:photo.where('photos.user_id=?',user.).count(:distinct=>true)