SQL连接多个表中的操作

时间:2014-12-13 12:12:41

标签: sql ms-access

我在MS Access中有三个表格如下:

--Students(ID, Name, Class)
--Subjects (ID, Name)
--Marks (ID, StudentID, Subject.ID)

关系如下:

Marks.Subject = Subjects.ID
Marks.StudentID = Students.ID

请帮我写一个可以返回学生姓名和该学生的所有主题姓名和标记的查询。

目前我有这个查询,但它会单独返回标记。

select Students.Name, Marks.Obtained, Subjects.Name from Marks
inner join Students on Marks.StudentName = Students.ID

5 个答案:

答案 0 :(得分:1)

您已加入studentsmarks表加入Subjects表格

SELECT students.NAME, 
       marks.obtained, 
       subjects.NAME 
FROM  ( marks 
       INNER JOIN students 
               ON marks.studentname = students.id )
       INNER JOIN subjects 
               ON marks.subject = subjects.id 

答案 1 :(得分:0)

试试这个:

select Students.Name, Marks.Obtained, Subjects.Name from Marks
inner join Students on Marks.Subject = Subjects.ID
Marks.StudentID = Students.ID

答案 2 :(得分:0)

This will help you : 



 select Students.Name, Marks.Obtained, Subjects.Name from Marks
    inner join Students on Marks.StudentName = Students.ID
    inner join Subjects on Marks.Subject = Subjects.ID;

答案 3 :(得分:0)

试试这个:

SELECT a.name, b.obtained, c.name
FROM studentTable a
INNER JOIN marksTable b ON a.ID = b.StudentID
INNER JOIN subjectsTable c ON b.Subject.ID = c.ID

答案 4 :(得分:0)

我会按如下方式重新排序:

select A1.Name as 'Student Name'
  , A3.Name as 'Subject'
  , A2.Obtained as 'Mark Obtained' 
from Students AS A1  
     inner join Marks as A2 on A1.ID = A2.StudentID
     inner join Subjects AS A3 on A2.Subject = A3.ID GO;

我希望有所帮助。