Sql 通过连接另一个表,从IBMDB2中最近5天的表中获取行

Sql 通过连接另一个表,从IBMDB2中最近5天的表中获取行,sql,db2,Sql,Db2,我在DB2中有两个表 table1 ---- sidpk pid -------------------------- 24gsr3 xyz 67sfr9 xyz 67sts8 xyz table2 ------------------------- sid date -------------------------- 24gsr3

我在DB2中有两个表

table1
----
sidpk                 pid
--------------------------
24gsr3               xyz
67sfr9               xyz
67sts8               xyz

table2
-------------------------
sid                 date
--------------------------
24gsr3              2017-09-24
67sfr9              2017-09-23
67sts8              2017-09-15
.
.
and so on
我试图从表2中获取5天前创建的所有可用行

在上面的例子中,我希望它应该返回24GSR367SFR9

我的查询缺少什么

请找到它

SELECT a.sidpk from table1 a
LEFT JOIN
table2 b
ON a.sidpk= b.sid
WHERE a.pid='xyz' AND b.date>= DATE_SUB(CURDATE(), INTERVAL 5 DAY) AND 
b.date<= CURDATE()
ORDER BY b.date DESC 
从表1 a中选择a.sidpk
左连接
表2 b
在a.sidpk=b.sid上
其中a.pid='xyz'和b.date>=日期(CURDATE(),间隔5天)和
b、 日期这应该有效

SELECT a.sidpk from table1 a
  LEFT JOIN table2 b
    ON a.sidpk= b.sid
 WHERE a.pid='xyz' 
   AND b.date >= current date - 5 days
   AND b.date <= current date
 ORDER BY b.date DESC 
从表1 a中选择a.sidpk
左图2 b
在a.sidpk=b.sid上
其中a.pid='xyz'
和b.日期>=当前日期-5天

哪一个操作系统的日期?您得到所有行还是一个错误?尝试当前日期-5天而不是日期_sub@MichaelTiefenbacher,我在用微软。但是这和操作系统有什么关系呢?为什么不直接使用内部连接呢?我不认为你是故意使用“左联接”。@AbdullahDibas,你能试试它执行那个查询吗?@Aliy我已经在我的第一条评论中说过了:试试当前日期-5天而不是日期