【发布时间】:2017-09-24 15:34:11
【问题描述】:
我在 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
我正在尝试从 table2 获取从今天开始 5 天前创建的所有可用行。
在上述情况下,我希望它应该返回 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
【问题讨论】:
-
哪个操作系统?你得到所有行还是错误?尝试当前日期 - 5 天而不是 date_sub
-
@MichaelTiefenbacher,我正在使用微软。但它与操作系统有什么关系呢?
-
你为什么不直接使用 INNER JOIN 呢?我认为您不是故意使用 LEFT JOIN。
-
@AbdullahDibas,你能试试它执行那个查询吗?
-
@Aliy 我已经在第一条评论中做了:尝试当前日期 - 5 天而不是 date_sub