2010-06-14 46 views
3

我正在運行Oracle查詢。它似乎工作,除了它返回每個結果4重複。以下是查詢: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# 

有誰知道爲什麼這不能正常工作?

+0

也許你想'SELECT DISTINCT ...'什麼地方? – FrustratedWithFormsDesigner 2010-06-14 18:43:06

回答

5

你有一個交叉連接的位置:

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