2014-03-26 48 views
-2

我必须编写一个查询来从多个表中检索数据,我尽我所能来获取它,但一直卡住。多个SQL加入

我有以下表格:

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

这是我需要编写查询:

向学生展示具有相关的牌号为的21-11-1001的数据库检查的名称。

我真的很感激你的时间。

+2

你不欣赏任何人的时间。你有什么尝试? –

+1

同时显示您已写/尝试的实际查询。 – hjpotter92

+0

学习连接,然后发布答案。我们将会感激! – KrazzyNefarious

回答

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' 

那里你去,从一千年前的成绩。

+0

非常感谢。我不知道在“JOIN”中可以使用“WHERE”子句。刚刚学到了新东西。 – user3466152

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。如果它位于modulename列中的module表中,则应该起作用。

+0

非常感谢。这更多地打开了我的眼睛。 – user3466152