Oracle选择子查询

rty*_*hyk 7 sql oracle subquery

你能帮我解决下一个oracle sql查询吗?

SELECT "NEWS"."NEWSID" as ID,
       "NEWS"."SLUG",
       "NEWS_TRANSLATION".*, 
       (SELECT FILENAME FROM NEWS_MEDIA WHERE NEWSID = ID AND rownum <= 1 ORDER BY POSITION ASC) as FILENAME
FROM "NEWS" 
INNER JOIN "NEWS_TRANSLATION" ON NEWS.NEWSID = NEWS_TRANSLATION.NEWSID 
WHERE (NEWS.PUBLISH = 1) AND (NEWS_TRANSLATION.LANG = :lang) 
ORDER BY "NEWS"."NEWSID" DESC;
Run Code Online (Sandbox Code Playgroud)

当我执行此查询时,我有错误

ORA-00907: missing right parenthesis
00907. 00000 -  "missing right parenthesis"
*Cause:    
*Action:
Error at Line: 4 Column: 74
Run Code Online (Sandbox Code Playgroud)

Bir*_*ash 10

试试这个:

SELECT "NEWS"."NEWSID" as ID,
   "NEWS"."SLUG",
   "NEWS_TRANSLATION".*, 
   (SELECT * FROM (SELECT FILENAME FROM NEWS_MEDIA WHERE NEWSID = ID ORDER BY POSITION ASC) WHERE rownum = 1) as FILENAME
FROM "NEWS" 
INNER JOIN "NEWS_TRANSLATION" ON NEWS.NEWSID = NEWS_TRANSLATION.NEWSID 
WHERE (NEWS.PUBLISH = 1) AND (NEWS_TRANSLATION.LANG = :lang) 
ORDER BY "NEWS"."NEWSID" DESC;
Run Code Online (Sandbox Code Playgroud)

你什么时候一起使用"order by"和"rownum",你需要先订购它们并寻找第一条记录.