Вам необходимо прекратить использовать синтаксис неявного соединения SQL '89.
Не потому что это не работает, а потому что это зло .
Прямо сейчас у вас есть cross join
, что в 99,9% случаев не то, что вы хотите.
Кроме того, каждый суб-выбор должен иметь свой собственный псевдоним.
SELECT * FROM
(SELECT e.*, e1.* FROM EAI.EAI_EVENT_LOG e
INNER JOIN EAI.EAI_EVENT_LOG_MESSAGE e1 on (......)
WHERE e.SOURCE_URL LIKE '%.XML'
ORDER BY e.REQUEST_DATE_TIME DESC) s WHERE ROWNUM <= 20
Укажите критерий соединения в пунктирной линии.
Обычно вы делаете соединение на ключевом поле, например ON (e.id = e1.event_id)
Плохо использовать select *
, лучше точно указать, какие поля вы хотите:
SELECT e.field1 as customer_id
,e.field2 as customer_name
.....