在PostgreSQL服务器上,我有一个如下表:
+------+------+------------------+
| Code | kind| timestamp |
+------+------+------------------+
| 1 | I | 16-05-2011 09:17 |
| 1 | O | 16-05-2011 09:47 |
| 2 | I | 16-05-2011 09:37 |
| 3 | I | 16-05-2011 11:26 |
| 3 | O | 16-05-2011 12:11 |
| 3 | I | 16-05-2011 13:23 |
+------+------+------------------+
Run Code Online (Sandbox Code Playgroud)
此表表示具有相对时间戳的池中人员的IN和OUT,并且我想知道给定时刻池中的人员.
有没有办法检索那些没有相应'O'的'I'行?我可以用一个查询吗?
代码代表人员代码......
LEFT JOIN是一种方法
SELECT
t.Code,
t.kind,
t.timestamp
FROM table t
LEFT JOIN table t2
ON t.code = t2.code
AND t.kind = 'I'
AND t2.kind = 'O'
WHERE t2.code IS NULL
Run Code Online (Sandbox Code Playgroud)
它也应该与Not Exists一起使用
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |