我的表格如下:
ID | Multiple | Itemlist_ID | Inventory_ID
----------------------------------------------------------------
1 | 1 | 1 | 1
2 | 1 | 1 | 2
3 | 1 | 1 | 3
4 | 1 | 4 | 2
5 | 1 | 4 | 3
6 | 2 | 4 | 2
7 | 2 | 4 | 3
如何使用Multiple
和Itemlist_ID
的唯一组合检索记录?例如下面:
ID | Multiple | Itemlist_ID | Inventory_ID
----------------------------------------------------------------
1 | 1 | 1 | 1
4 | 1 | 4 | 2
6 | 2 | 4 | 2
注意,这是检索不会显示Inventory_ID的View,因此我不关心是否取回记录[1,4,6]
或[1,5,7]
或[2,4,6]
。使用first
命令很好。
答案 0 :(得分:0)
您可以使用此语法在Activerecord中执行GROUP BY查询(将Model
替换为您的班级名称):
Model.group('Multiple', 'Itemlist_ID').select('Multiple', 'Itemlist_ID')
这将检索(Multiple,Itemlist_ID)的所有唯一组合。
您可以选择在除两个分组列之外的列上添加聚合操作,例如SUM,AVG,COUNT等。例如,如果您想知道每个组中有多少条记录:
Model.group('Multiple', 'Itemlist_ID').select('Multiple', 'Itemlist_ID', 'COUNT(1) AS group_count')
这会在名为' group_count'的结果中添加一个属性。这将是每组中包含的记录数