我有两个表具有以下数据:选择SQL内部连接和省略某些记录
表A
ID DESC
1 One
2 Two
3 Three
ID是主键
表B显示了我在做对ID的动作表阿
NO ACTION ID DATETIME
1 ADD 1 2012-01-01 00:00:00
2 ADD 2 2012-01-01 00:00:00
3 ADD 3 2012-01-01 00:00:00
4 DELETE 2 2012-01-01 01:00:00
5 EDIT 1 2012-01-01 02:00:00
6 EDIT 3 2012-01-01 03:00:00
7 DELETE 1 2012-01-01 03:00:00
8 REVIVE 2 2012-01-01 04:00:00
9 EDIT 2 2012-01-01 05:00:00
NO是主键
这里是总结:
ID 1:添加于2012-01-01 00:00:00,编辑于2012-01-01 02:00:00,删除于2012-01-01 03: 00:00
ID 2:2012-01-01 00:00:00 ADD,2012-01-01 01:00:00 DELETE,2012-01-01 04:00:00 REVIVE,编辑2012-01-01 05:00:00
ID 3:2012-01-01 00:00:00,编辑ADD 2012-01-01 03:00:00
我如何查询表得到如下结果:
表C
NO DESC
2 Two
3 Three
我想要做的是:查询表A中没有在最后交易时间删除操作,所以我只得到有效ID
我试图做内部联接,但如何在最后一次交易时忽略具有删除操作的ID。任何建议/意见将不胜感激。
是'NO'主键?它是否符合'DATETIME'? –
@KubaWyrostek表主键是ID列,表B主键是NO列(用于事务索引)。这意味着表B将始终处于DATETIME顺序。顺便说一句我正在使用postgres – wrez