2016-07-20 47 views
-1

我設置了整天閱讀如何在一個SQL查詢中使用jouin 3表的stackoverflow問題,我嘗試了很多次,但沒有奏效!左側錯誤在mysql中加入三個表

我的情況是這樣的,我想了解它是如何工作的,應該怎麼做。

我的SQL查詢如下:

SELECT students.id, 
     students.name, 
     students.age, 
     students.subjects, 
     students.teacher from students 
LEFT JOIN subjects ON students.subjects = subjects.subject_id 
LEFT JOIN teachers ON students.teacher = teachers.teacher_id 

什麼是我的情況下,錯了嗎?

+0

你有一個錯字在那裏 - 它應該是'from'不'form'。如果你可以顯示你的表格架構 – RamRaider

+0

表格必須來自它也會有所幫助。 from的拼寫錯誤。 – Bhavin

+0

對不起,但問題仍然存在 – Evemtor

回答

1

你缺少的條件在第二LEFT JOIN

SELECT s.id, s.name, s.age, s.subjects, s.teacher 
FROM students s LEFT JOIN 
    subjects su 
    ON s.subjects = su.subject_id LEFT JOIN 
    teachers t 
    ON s.teacher = t.teacher; 

你應該注意到,雖然該查詢只從students取列,所以你不需要連接(在這一點上,我猜你想要的查詢更復雜)。

+0

也許這只是我,但將'LEFT JOIN'與'FROM'或'ON'放在同一行看起來很奇怪......無論如何,正確的答案。 –

+0

學生的「s」來自哪裏? – Evemtor

+0

這是一個別名。你可以說'FROM students as s'',然後用's'來引用它。使其更短,更清晰。 「AS」 - 就像這裏的情況一樣 - 是可選的。 –

-1

試試這個兄弟

select stud.id,stud.name,stud.age,stud.subjects,stud.teacher 
from students stud, subjects sub ,teachers tea 
where stud.subjects = sub.subject_id and stud.teacher = tea.teacher_id 
+0

工作方式不同:'LEFT JOIN'也選擇沒有老師的學生。 –

+0

爲什麼有人downvote我的答案.. – Goutham

+0

(旁註/寵物peeve:爲什麼你縮短表名稱,當它不顯着減少長度?它只會使它更難以理解)。 –