【发布时间】:2014-11-03 01:20:22
【问题描述】:
我有一个如下表:
USERS
USERID EMAIL
----------------------
1 xxx@xxx.com
2 yyy@yyy.com
AUDIT_ITEM
AI_ID AI_NAME
----------------------------
1 AAA
2 BBB
3 CCC
4 DDD
AUDIT_LOG
AL_ID USERID AI_ID PACKAGING_ID INSERT_DATE
--------------------------------------------------------------------
1 2 1 100 09/09/2014
2 1 2 102 09/09/2014
3 1 3 103 09/09/2014
4 1 1 100 09/09/2014 ( LATEST RECORD INSERTED)
现在我想要基于 AUDIT_LOG 表中插入的最新记录的用户电子邮件(在本例中为 xxx@xxx.com),其中 AI_NAME='AAA' 和 PACKAGING_ID = 100。注意 INSERT_DATE 是 DATE 类型
【问题讨论】:
-
您对“最后插入的记录”的标准是什么?是
INSERT_DATE,那么你显示的四条记录没有区别。如果是最棒的AL_ID,那你应该这么说。 -
是的,它的 INSERT_DATE 必须决定哪条记录是最新的
-
但是
INSERT_DATE在所有四条记录上都是一样的,那么你怎么知道哪一条是最新的呢? -
insert_date 是 DATE 类型,在 oracle 中它只显示日期但实际上它也有时间,所以我们必须根据时间戳来识别
标签: sql oracle join oracle10g left-join