oracle-запрос возвращает 4 дубликата каждой строки - PullRequest
3 голосов
/ 14 июня 2010

Я выполняю запрос Oracle.Кажется, работает, за исключением того, что он возвращает 4 дубликата каждого результата.Вот запрос:

Select * from (
    Select a.*, rownum rnum From (
        SELECT NEW_USER.*, NEW_EHS_QUIZ_COMPLETE.datetime
        FROM NEW_USER, NEW_EHS_QUIZ_COMPLETE
        WHERE EXISTS (
            select *
            from NEW_EHS_QUIZ_COMPLETE
            where NEW_USER.id=NEW_EHS_QUIZ_COMPLETE.USER_ID
        )
        ORDER by last_name ASC
    ) a
    where rownum <= #pgtop#
)
where rnum >= #pgbot#

Кто-нибудь знает, почему это не работает должным образом?

1 Ответ

5 голосов
/ 14 июня 2010

У вас есть кросс-соединение здесь:

SELECT
    NEW_USER.*,
    NEW_EHS_QUIZ_COMPLETE.datetime
FROM NEW_USER, NEW_EHS_QUIZ_COMPLETE
WHERE EXISTS(
    select * from NEW_EHS_QUIZ_COMPLETE
    where NEW_USER.id=NEW_EHS_QUIZ_COMPLETE.USER_ID
) 

Вы, вероятно, имеете в виду это:

SELECT
    NEW_USER.*,
    NEW_EHS_QUIZ_COMPLETE.datetime
FROM NEW_USER
INNER JOIN NEW_EHS_QUIZ_COMPLETE
ON NEW_USER.id = NEW_EHS_QUIZ_COMPLETE.USER_ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...