多个SQL连接

时间:2014-03-26 21:19:16

标签: mysql sql sql-server

我必须编写一个从多个表中检索数据的查询,我已经尽了最大努力来获取它但却一直卡住了。

我有以下表格:

  • 教师
    • teacher_code
    • 初始
    • 名称
  • 学生
    • stud_no
    • 初始
    • 插入
    • 名称
    • birth_date
    • 地址
    • 城市
    • class_code
    • class_code
    • 类名
  • 模块
    • module_code
    • 模块名
  • Teacher_module
    • teacher_code
    • module_code
    • class_code
  • 等级
    • stud_no
    • module_code
    • 日期
    • 等级

这是我需要写的查询:

显示21-11-1001数据库考试相关成绩的学生姓名。

我非常感谢你的时间。

2 个答案:

答案 0 :(得分:1)

我在猜测"数据库"是一个模块名称。

我希望21-11-1001是grade.date,而不是某种代码。

我不知道为什么你列出了sql-server和mysql。我将假设mysql,因为我从未在现实生活中使用自然连接。无论如何我都会假设任何架构/参考,所以我只是让引擎弄明白。

select s.name, g.grade
from grades g
natural join student s 
natural join module m
where m.modulename='Databases'
and g.date='1001-11-21'
你去了,一千年前的成绩。

答案 1 :(得分:0)

这样的东西?:

select s.name, g.grade
from student s 
    join grade g on s.stud_no = g.stud_no
    join module m on m.module_code = g.module_code
where m.modulename = '21-11-1001'

取决于哪个列包含21-11-1001。如果它位于module列的modulename表格中,则应该有效。