2017-10-19 8 views
0

私はこの質問に一晩留まり、それをスキップして、それに戻ってきました(申し訳ありませんが、私はノブのビットです)。MS-Access:2つのテーブルからデータを選択し、必要なものだけを返す

質問には、コース名とそのコースにしか載っていない学生の名前が表示されます。私はORDER BYGROUP BYINNER JOINを試しましたが、両方の表にCourse_Nameがありません。私が得ることができました最も近いのです

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

、それはすべての学生を返しますが、私は後だものですすべてのコース、彼らは、具体的にいるだけではなく、コースでそれらを示しています。

助けが必要ですか?

Courseは、これらのカラムがあります:

Course_ID 
Course_Name 

Studentはあなたがコースにコースのリストを持っている

First_Name 
Last_Name 
Course_Name 
+0

をStudentID言ったようにJOIN's、これは助けになる可能性があります:https://msdn.microsoft.com/en-us/library/bb243855(v=office.12).aspx – Moseleyi

答えて

1

を持っている:)

私は2つのテーブル、CourseStudentを持っていますテーブルと学生はStudentテーブルにリストされていますが、もう1つのテーブルをCourseStとして持つ必要がありますどんな学生がどのコースを受講するかを表すデータを保持するudents。

CourseStudentsテーブルは、Courseテーブルの外部キーとStudentテーブルの外部キーという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

あなたは私たちですあなたのCourseStudentテーブル名とIDフィールド名は、上記の名前を作ったものとは違っていたはずです。それがあなたの問題を解決した場合、答えとしてマークするのを忘れないでください... – Noxthron

0

私はあなただけの「学生のテーブルを照会する場合は、このデータ構造で、あなたが望む結果を得るだろうと思います(STUDENT SELECT * FROM):

は、その後、あなたは、このようなクエリを必要としています。

このデータ構造により、1人の学生が1コースになることができます。 Noxthronが言ったようにおそらくあなたはそれを修正しようとしたいと思います。

表学生 姓 姓 StudentID

表コース CourseName CourseID

表CourseAssignment - > CourseStudents Noxthron あなたはINNER `上に読む必要が CourseID

関連する問題