我很难弄清楚这个查询返回的是什么:
@themes = Theme.joins({submissions: [:digitization]}).group('themes.id').count
=> {1=>15, 5=>1, 7=>1, 10=>1, 11=>1, 13=>69, 14=>4, 17=>2, 18=>4, 19=>2, 20=>1, 22=>1, 31=>91, 32=>118, 33=>102, 34=>156, 35=>84, 36=>82, 37=>130, 38=>116, 39=>86, 40=>117, 41=>89, 42=>138, 43=>120, 44=>146, 45=>63, 46=>92, 47=>122, 48=>62, 49=>151, 50=>91, 51=>172, 52=>72, 53=>94, 54=>120, 55=>136, 56=>80, 57=>137,右边的值是什么?左边的值是什么?我知道我们是按themes.id分组的,所以我可以看到左边是主题的id……但是右边的计数是什么呢?
下面是sql语句:
@themes = Theme.joins({submissions: [:digitization]}).group('themes.id').to_sql
=> "SELECT `themes`.* FROM `themes` INNER JOIN `submissions` ON `submissions`.`theme_id` = `themes`.`id` AND (purchase_status = \"Complete\" or purchase_status = \"Purchased\") INNER JOIN `digitizations` ON `digitizations`.`submission_code` = `submissions`.`identifier` GROUP BY themes.id"我知道joins正在进行内连接,并且只返回themes,因为存在一个digitization (通过theme的submissions找到)
发布于 2017-11-11 03:00:11
右侧的计数是基于themes.id进行分组后形成的每个组的大小
例如,假设有两个组,第一个组theme.id =1,第二个组theme.id = 2。第一个组有2个成员,第二个组有3个成员。
则上述查询将返回
=> {1=>2, 2=>3}右侧的值是与左侧的theme.id相对应的“数字化”计数。
https://stackoverflow.com/questions/47229231
复制相似问题