我有下表'事件'。
Index()
我想选择用户' a'是最后一个用户 与所有者'事件类型。所以在这个例子中id为1,3和6( 资产10,20和30由用户拥有' a'。
基本上,根据事件,我想找到用户拥有的资产' a'。
答案 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 行。