2017-10-19 71 views
0

我一直被困在這個問題上整晚,不得不跳過它,並回來(對不起,我有點小菜)。MS-Access:從兩個表格中選擇數據,只返回你需要的

該問題要求顯示只在這些課程中的學生的課程名稱和姓名。我試過ORDER BY,GROUP BYINNER JOIN但是Course_Name沒有出現在兩張桌子上。

SELECT First_Name, Last_Name, Course_Name 
    FROM Student, Course 
    ORDER BY Course_Name; 

這是最接近我已經能夠得到,它返回所有的學生,但它們列在所有課程,而不僅僅是他們的具體是什麼,我以後是課程。

任何幫助? :)

我有兩個表,CourseStudent

Course有這些列:

Course_ID 
Course_Name 

Student

First_Name 
Last_Name 
Course_Name 
+0

你需要在'INNER讀了JOIN's,這可能有幫助:https://msdn.microsoft.com/en-us/library/bb243855(v=office.12).aspx – Moseleyi

回答

1

你有課的課程列表表格和學生列表放在學生表格中,但是你需要再多一個表格作爲CourseSt擁有代表哪些學生參加哪些課程的數據的學生。

一般來說(您可能認爲這是常見做法)CourseStudents表由2列組成:課程表的外鍵和學生表的外鍵。

然後,你需要這樣的查詢:

SELECT First_Name, Last_Name, Course_Name 
FROM CourseStudents 
INNER JOIN Student ON CourseStudents.StudentID = Student.StudentID 
INNER JOIN Course ON CourseStudents.CourseID = Course.CourseID 
ORDER BY Course_Name 
+0

你是我們lcoma,並且可能你的CourseStudent表名和ID字段名稱是不同的,因爲我填寫了上面的名字。如果它解決了您的問題,請不要忘記將其標記爲答案... – Noxthron

0

我想,有了這種數據結構,如果僅查詢「學生」表,你會得到你想要的東西(SELECT * FROM STUDENT)。

這個數據結構允許1個學生在1個課程。 Noxthron說,可能你想嘗試修改它。

表學生 名字 姓氏 StudentID

表場 CourseName CourseID

表CourseAssignment - > CourseStudents如說Noxthron StudentID CourseID

相關問題