通过加入另一个表,从IBM DB2的最近5天的表中获取行
问题描述:
我在DB2中有两个表。通过加入另一个表,从IBM DB2的最近5天的表中获取行
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
我正在尝试获取所有可用的行,这些行是从今天开始的5天之前从表2中创建的。
在上述情况下,我希望它应该返回是24gsr3,67sfr9
什么在我的查询缺少?
请找到它。
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
答
这应该工作
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
+0
它的工作原理。谢谢迈克尔 – Aliy
哪些操作系统?你是否得到所有的行或错误?尝试当前日期 - 5天而不是date_sub – MichaelTiefenbacher
@MichaelTiefenbacher,我正在使用Microsoft。但它与操作系统有什么关系? – Aliy
你为什么不使用INNER JOIN?我不认为你有意使用LEFT JOIN。 –