7

次のオラクルの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;

このクエリを実行するとエラーが発生します

ORA-00907: missing right parenthesis
00907. 00000 -  "missing right parenthesis"
*Cause:    
*Action:
Error at Line: 4 Column: 74
4

5 に答える 5

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;

「orderby」と「rownum」を一緒に使用している場合は、最初にそれらを注文して、最初のレコードを探す必要があります。

于 2012-08-03T17:56:51.473 に答える
2

動作するコードは次のとおりです。

SELECT "NEWS"."NEWSID" as ID,
   "NEWS"."SLUG",
   "NEWS_TRANSLATION".*, 
   (SELECT FILENAME FROM NEWS_MEDIA WHERE NEWSID = ID AND 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
于 2012-08-03T13:08:11.547 に答える
1

これを試して:

SELECT "NEWS"."NEWSID" AS ID, "NEWS"."SLUG", "NEWS_TRANSLATION".*,
       (SELECT FILENAME
          FROM NEWS_MEDIA
         WHERE NEWSID = "NEWS"."NEWSID" AND 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
于 2012-08-03T13:17:35.847 に答える
1

サブクエリの order by 句を削除してみてください。

于 2012-08-03T12:19:07.563 に答える
-2
SELECT STUDENT_NAME, STUDENT_ALIAS_NAME
FROM school
WHERE STUDENT_NAME IN (
        SELECT STUDENT_NAME
        FROM school
        WHERE STUDENT_DEPARMENT= 0
        ); 
于 2014-07-10T06:08:04.563 に答える