SQLite3按用户选择最后一个事件

时间:2016-04-21 11:32:44

标签: sql sqlite

我有下表'事件'。

Index()

我想选择用户' a'是最后一个用户 与所有者'事件类型。所以在这个例子中id为1,3和6( 资产10,20和30由用户拥有' a'。

基本上,根据事件,我想找到用户拥有的资产' a'。

1 个答案:

答案 0 :(得分:0)

这是相关子查询的用途:

SELECT * FROM events e
  WHERE event_type='owner'
   AND time=(SELECT MAX(e_inner.time) FROM events e_inner
      WHERE e_inner.asset=e.asset AND e_inner.event_type='owner')

将为您提供“针对每项资产,显示最后一次所有权事件”的事件。如果您想要特定资产或特定所有者,只需添加适当的WHERE子句

如果您不保证{time,event_type,asset}的唯一性,那么您的问题已经成熟。如果您在同一时间为 n 用户分配了所有权,则会返回所有 n 行。