【发布时间】:2012-12-30 16:05:42
【问题描述】:
我想获取 ENI_MONITOR 的每条记录,它是孤儿。在 ENI_FLUSSI_HUB 中对应的记录不应该存在。这两个公式都正确吗?左外连接是怎么想的?
SELECT /*+ PARALLEL (mon, 10) */
COUNT(1)
FROM B
WHERE B.mon_flag_ann = 'N'
AND NOT EXISTS
(
SELECT /*+ PARALLEL (c, 10) */
1
FROM A
WHERE B.MON_ID_MESSAGGIO = A.flh_id_messaggio
AND B.MON_COD_TP_PROCESSO = A.flh_tipo_processo_cod
AND A.FLH_FLAG_ANN = 'N'
);
SELECT /*+ PARALLEL (mon, 10) parallel (c 10) */
COUNT(DISTINCT MON_MONITORAGGIO_ID)
FROM B,
A
WHERE B.mon_flag_ann = 'N'
AND B.MON_ID_MESSAGGIO = A.flh_id_messaggio(+)
AND B.MON_COD_TP_PROCESSO = A.flh_tipo_processo_cod(+)
AND A.FLH_FLAG_ANN(+) = 'N'
AND A.flh_id_messaggio(+) IS NULL
【问题讨论】:
-
@Glk25 。 . .字段
flh_id_messaggio是否采用 NULL 值? -
@GordonLinoff 没有。所有这些字段都不能为空。
标签: sql oracle outer-join not-exists