我有一张这样的表:
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也是如此。