2014-02-27 68 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')