Когда я выполняю ниже SQL, я получаю rowid как: AAAI4cAAJAAAzWzAAA
SELECT Y.ROWID, Y.res_dt, Y.res_cd
FROM AJ_CES X
INNER JOIN temp_stg Y
ON X.key_field = Y.key_field
AND X.sts_cd IN ('P', 'G')
AND X.proc_dt >= Y.e_date
Но, если я выполняю ниже SQL, я получаю rowids, как показано ниже, оба имеют тот же rowid, который не ожидается.
SELECT A.ROWID, B.ROWID
FROM AJ_CES A
INNER JOIN (SELECT Y.ROWID, Y.res_dt, Y.res_cd
FROM AJ_CES X
INNER JOIN temp_stg Y
ON X.key_field = Y.key_field
AND X.sts_cd IN ('P', 'G')
AND X.proc_dt >= Y.e_date) B
ON (A.ROWID = B.ROWID)
Как мы видели в первом SQL, rowid это `AAAI4cAAJAAAzWzAAA.Первый sql - это подзапрос из второго sql, который был выполнен отдельно, чтобы увидеть rowid.Итак, во 2-м SQL B является ничем иным, как rowid из temp_stg, и если мы объединяем этот rowid с внешней таблицей AJ_CES, почему оба rowid одинаковы?
См. Вывод ниже:
ROWID ROWID1
AAAJC9AANAAEputAAA AAAJC9AANAAEputAAA