2013-06-12 101 views
0

我想爲商店S9找到發佈最多評論數的用戶的朋友。在Oracle查詢中缺少右括號

我有以下查詢:

select friend_id 
    from friends 
where user_id = (select author_id 
        from posted_reviews_tab 
        where rownum <= 1 
         and reviewid in (select w.reviews.reviewid 
              from wall_tab w 
             where w.shopid = 'S9') 
        group by author_id 
        order by count(author_id) desc); 

我收到以下錯誤:

SQL Error: ORA-00907: missing right parenthesis 00907. 00000 - "missing right parenthesis"

+2

我在查詢中添加了空格,它使得閱讀(對我而言)更容易,並且在可能出現問題的地方更容易地向您顯示。 GROUP BY,ORDER BY與rownum謂詞幾乎肯定不會返回您認爲的結果。 – Ben

+0

你可以分享表格結構嗎?這將有助於更快地構建查詢。 –

回答

2

有在選擇一個錯字:

select friend_id 
    from friends 
where user_id = (select author_id 
        from posted_reviews_tab 
        where rownum <= 1 
             --w.reviews.reviewid is wrong 
         and reviewid in (select w.reviews.reviewid 
              from wall_tab w 
             where w.shopid = 'S9') 
        group by author_id 
        order by count(author_id) desc); 

如果不是錯字,您將不得不使join到達'.reviews',因爲該語法是不可能的。

+0

好吧,我需要使用連接..我相當新! – Margi