2010-06-14 4 views
3

Je cours une requête Oracle. Il semble fonctionner, sauf qu'il renvoie 4 doublons de chaque résultat. Voici la requête:La requête Oracle renvoie 4 doublons de chaque ligne

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# 

Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas correctement?

+0

Peut-être que vous voulez '' SELECT DISTINCT ... quelque part? – FrustratedWithFormsDesigner

Répondre

5

Vous avez une jointure croisée ici:

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 
) 

Vous voulez dire sans doute ceci:

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 
Questions connexes