2017-03-25 9 views
0
SQL> SELECT CUSTOMER.CUSTOMERID, 
    2 CUSTOMER.CUSTOMERNAME, 
    3 EVENT.EVENTLOCATION 
    4 WHERE NOT EXISTS 
    5 (SELECT * FROM EVENT.EVENTLOCATION AND EVENTLOCATION ="LONDON 02") 
    6 FROM CUSTOMER 
    7 INNER JOIN BOOKING 
    8 ON BOOKING.CUSTOMERID = CUSTOMER.CUSTOMERID 
    9 INNER JOIN EVENT 
10 ON EVENT.EVENTID=BOOKING.EVENTID 
11 INNER JOIN CONCERTS 
12 ON CONCERTS.CONCERTID=EVENT.CONCERTID; 
    WHERE NOT EXISTS 
    * 
ERROR at line 4: 
ORA-00923: FROM keyword not found where expected 

内部結合を使用してロンドンで開催されたイベントに出席していない顧客を見つけようとすると、4行目にエラーが発生します。どこが間違っているのですか?Sql内部結合が存在しないサブクエリエラー

+0

'' FROM'後に来るWHERE'。 –

+0

SQL> SELECT Customer。顧客、 2 CUSTOMER.CUSTOMERNAME、NOT 7 INNER 8を予約をJOIN 6(EVENTLOCATION = "LONDON 02" WHERE EVENT SELECT * FROM)が存在CUSTOMER 5〜3 EVENT.EVENTLOCATION 4 BOOKING.CUSTOMERID ON = Customer。顧客 9インナーEVENT.EVENTID = BOOKING.EVENTID 11インナーCONCERTS.CONCERTID = EVENT.CONCERTID ONコンサート 12 JOINでイベント 10 JOIN。 INNER JOIN BOOKING * エラー:行7: ORA-00933:SQLコマンドが正しく終了していません –

+0

SQLコマンドが正しく終了しなかったエラー ? –

答えて

0

エラーはWHERE条件にあったはずの選択リストに存在するステートメントを置いているためです。私は以下のように変更しました

SELECT 
    CUSTOMER.CUSTOMERID, 
    CUSTOMER.CUSTOMERNAME, 
    EVENT.EVENTLOCATION 
FROM CUSTOMER 
    INNER JOIN BOOKING 
     ON BOOKING.CUSTOMERID = CUSTOMER.CUSTOMERID 
    INNER JOIN EVENT 
     ON EVENT.EVENTID=BOOKING.EVENTID 
    INNER JOIN CONCERTS 
     ON CONCERTS.CONCERTID=EVENT.CONCERTID; 
WHERE NOT EXISTS 
(
    SELECT 1 FROM EVENT.EVENTLOCATION WHERE EVENTLOCATION ='LONDON 02' 
) 
0

まず、すべての結合後に "WHERE"節を置くことをお勧めします。 第2に、 "SELECT"節

SELECT * FROM EVENT.EVENTLOCATION AND EVENTLOCATION ="LONDON 02" 

が間違っています。構文は次のとおりです。

SELECT * FROM TABLE_NAME WHERE YOUR_CONDITIONS 

ので、多分このような何か:

SELECT CUSTOMER.CUSTOMERID, 
CUSTOMER.CUSTOMERNAME, 
FROM CUSTOMER 
LEFT OUTER JOIN BOOKING 
ON BOOKING.CUSTOMERID = CUSTOMER.CUSTOMERID 
LEFT OUTER JOIN 
(SELECT * FROM EVENT WHERE EVENTLOCATION="LONDON 02") AS LONDON_EVEN 
ON EVENT.EVENTID=BOOKING.EVENTID 
INNER JOIN CONCERTS 
ON CONCERTS.CONCERTID=EVENT.CONCERTID 
WHERE EVENT.EVENTID IS NULL; 
関連する問題