2014-02-27 66 views
0

林創建一個數據庫,它具有如下表&下列:MySQL的選擇從多個表

  • 學生 - (studentId,studentName,度)
  • 模塊 - (的moduleId,MODULENAME,信用)
  • 註冊 - (studentId,的moduleId)
  • 員工 - (STAFFID是,staffName,等級)
  • 教 - (STAFFID是,MODULENAME)

我想要從搜索中搜索由某個導師教授的模塊。

因此,例如,如果詹姆斯威爾金森正在教英語和數學,它將顯示模塊ID教他的模塊結果。

+0

簡單連接,請張貼在那裏你才幫你得到stucked。 –

+0

我所有的都是搜索所有指定的表,哪些列,最後是哪裏。但它帶來了大量的結果。但加入失蹤 – lparry1992

+0

我現在試圖查看由某些導師教授的學生。我沒有得知我如何才能使其工作。 SELECT student.studentId,student.studentName FROM student INNER JOIN教導ON teachhes.moduleId = module.moduleId INNER JOIN staff ON staff.staffId = teaches.staffId WHERE staff.staffName ='alan turing'; – lparry1992

回答

1

試試這個:

select Module.Moduleid from Module inner join Teaches on Teaches.ModuleName=Module.ModuleName inner join staff on Staff.staffid=teaches.staffid where staff.staffname='James Wilkinso' 

反正小圓出錯了結構。表教程應該有一個moduleID字段,而不是ModuleName。

希望這有助於

+0

對不起,它是moduleId – lparry1992

+0

有沒有辦法通過沒有連接來實現這一點? – lparry1992

+0

不,我知道。爲什麼?當然你也可以做一個小程序來做同樣的事情,但我沒有理由這麼做。 – ericpap

0

似乎是一個簡單的加入給我。需要

SELECT staffName, moduleName 
FROM Staff a 
JOIN teaches b on a.staffId=b.staffId 
; 
0
select module.module_id , module.module_name, teaches.staff_id from module 
INNER JOIN on module.module_name = teaches.module_name 
where teaches.staff_id in 
(select staff_id from staff where staff.staffname='James Wilkinson')