2016-07-09 73 views
1

我想不通爲什麼我收到此錯誤信息....Oracle錯誤,ORA-00933:SQL命令不能正確地結束

SELECT student.student, course.coursename, course.coursehours, section.day, section.starttime, course.building, location.room 

FROM student, course, section, location, registration 

WHERE course.courseid = section.courseid, location.locationid = 
section.locationid, student.studentid = registration.sectionid, 
section.sectionid = registration.sectionid; 

Error at line 3: 
ORA-00933: SQL command not properly ended 

我更新了我的數據是這樣的:

SELECT student.studentid, 
    course.coursename, 
    course.credithours, 
    section.days, 
    section.starttime, 
    location.building, 
    location.room 
FROM student 
     INNER JOIN registration 
       ON student.studentid = registration.sectionid 
     INNER JOIN section 
       ON section.sectionid = registration.sectionid 
     INNER JOIN location 
       ON location.locationid = section.locationid 
     INNER JOIN course 
       ON course.courseid = section.courseid; 

但現在它說「沒有選擇行」?

+0

什麼是錯誤信息?這是MySQL,SQLite,PostgreSQL嗎? – PhotometricStereo

+0

@Prdp當我發表評論時,沒有用Oracle標記它。 – PhotometricStereo

+1

你試過調試什麼?你現在加入5張桌子。加入2個表格。如果您獲得了您期望的數據,請添加另一個。在每一步建立測試。不要編寫完整的查詢,然後對其進行測試。如果你這樣做,我懷疑你會發現從'學生'到'註冊'的連接是錯誤的。我懷疑'studentid'與'sectionid'匹配。我猜想你想加入的是''註冊'中的'studentid'。 –

回答

0

當您有多個條件時,您需要使用AND/OR運算符來應用條件而不是comma。還開始使用INNER JOIN語法

SELECT student.student, 
     course.coursename, 
     course.coursehours, 
     section.day, 
     section.starttime, 
     course.building, 
     location.room 
FROM student 
     INNER JOIN registration 
       ON student.studentid = registration.sectionid 
     INNER JOIN section 
       ON section.sectionid = registration.sectionid 
     INNER JOIN location 
       ON location.locationid = section.locationid 
     INNER JOIN course 
       ON course.courseid = section.courseid 
+0

啊,我明白了。謝謝@Prdp!這是更新的語法嗎?我被教導了'92以上的版本,並認爲我仍然可以以同樣的方式做到這一點... – ecooper10

+0

我不再收到錯誤消息,但它現在返回「沒有選擇行」,你知道這可能是爲什麼嗎? – ecooper10

+0

@ ecooper10 - 無需查看難以分辨的數據。確保所有連接條件都正確,並且所有表應該至少有一個匹配記錄 –

相關問題