Ruby datamapper仅在最近时通过约束获取

时间:2011-06-16 15:54:23

标签: ruby datamapper

我有一张这样的表:

id|sku|date
-----------
1  111 today
2  111 today
3  111 yesterday
3  222 today
4  222 last week
4  111 yesterday

简化为仅包含相关内容

我想把sku 111作为他们最近的sku的所有项目。因此,对于上面的表格,我想要返回ID 1和2,但不是3,因为虽然3确实有sku 111的关联,但它有一个更新的一个为222.它将返回4,因为虽然4与222有关联,它与111有较新的关联。

使用datamapper的约束是否有一种简单的方法,假设我已将对象正确映射到模式?

My_Obj.all(:sku => mysku....

编辑:如果它有助于澄清,我想知道是否有办法使用datamapper来做与此相同的事情:

SELECT * FROM mytable
 WHERE (id, date) IN (
     SELECT id, MAX(date) AS date FROM mytable GROUP BY id)
 AND sku=111;

对于示例表,它将返回:

id|sku|date
-----------
1  111 today
2  111 today
4  111 yesterday

因为id 3的最新条目没有sku 111,而4的最新条目没有,1和2也是如此。

0 个答案:

没有答案