给出下面的表格,我需要从
NAT_DASH_AUD_ELEMENTO_WORKFLOW_LOC_008
获取所有记录,并且每行从 NAT_DASH_AUD_ELEMENTO_WORKFLOW_007
获取
AuditData <= NAT_DASH_AUD_ELEMENTO_WORKFLOW_LOC_008.AuditData
and ID_ELEMENTO_008 = ID_007
使用 join 无法做到这一点,因为代码就是这样,并且不允许内部条件
select * from
NAT_DASH_AUD_ELEMENTO_WORKFLOW_LOC_008
INNER JOIN
(SELECT * FROM NAT_DASH_AUD_ELEMENTO_WORKFLOW_007
WHERE
NAT_DASH_AUD_ELEMENTO_WORKFLOW_007.AuditData <= NAT_DASH_AUD_ELEMENTO_WORKFLOW_LOC_008.AuditData
AND ID_007 = ID_ELEMENTO_008
ORDER BY NAT_DASH_AUD_ELEMENTO_WORKFLOW_007."AuditData" DESC
fetch next 1 rows only)
ON ID_007 = ID_ELEMENTO_008
在选择中使用子查询时,我被迫仅选择一列
有没有一种 sql 标准方法可以做到这一点,而不会弄乱这个简单要求的对象或记录?
桌子:
CREATE TABLE "NAT_DASH_AUD_ELEMENTO_WORKFLOW_LOC_008"
( "AuditId" NUMBER(9,0),
"AuditAction" VARCHAR2(250 BYTE) ,
"AuditUser" VARCHAR2(250 BYTE) ,
"AuditData" TIMESTAMP (6),
"ID_008" NUMBER(12,0),
"ID_LINGUA_008" NUMBER(9,0),
"ID_ELEMENTO_008" NUMBER(9,0),
"NOTE_008" VARCHAR2(4000 CHAR)
)
和
CREATE TABLE "NAT_DASH_AUD_ELEMENTO_WORKFLOW_007"
( "AuditId" NUMBER(9,0) ,
"AuditAction" VARCHAR2(250 BYTE) ,
"AuditUser" VARCHAR2(250 BYTE),
"AuditData" TIMESTAMP (6),
"ID_007" NUMBER(12,0),
"ID_STATO_ORIGINE_007" NUMBER(9,0),
"ID_STATO_DESTINAZIONE_007" NUMBER(9,0),
"NOTA_OBBLIGATORIA_007" NUMBER(1,0),
"ALLEGATO_OBBLIGATORIO_007" NUMBER(1,0),
"FINALE_007" NUMBER(1,0),
"ID_WORKFLOW_007" NUMBER(9,1)
)
您可以检查此查询:
SELECT *
FROM NAT_DASH_AUD_ELEMENTO_WORKFLOW_LOC_008 n8
INNER JOIN NAT_DASH_AUD_ELEMENTO_WORKFLOW_007 n7
ON n7.ID_007 = n8.ID_ELEMENTO_008
AND n7.AuditData <= n8.AuditData
ORDER BY n7.ID_007, n7.AuditData DESC, n8.AuditData; --ORDER BY...