2016-05-30 1 views
0

私は3つのテーブルを持っています:Student、Course、StudentCourseどのようなコース。別のテーブルの無関係なフィールドに基づいてフィールドを選択する(ID値を持つブリッジテーブルにリンクされています)

私はコースに登録された学生のリストを表示しようとしていますが、それをどのように単一のSQLステートメントに伝えるかはわかりません。

以下のコードは、私がしたいことを3つのステートメントに分割して示しています。

int cId = "コースからのIDの選択where name = someName";

int sId = "studentCourseからstudentIdを選択します(courseId =" + cId;

最後の文:学生どこstudentId =」+ SIDから名前を選択します。

のnoobの質問には申し訳ありませんが、私は実際にソリューションを検索してみてくださいでしたが、かなり私が探していたものを見つけることができませんでした

答えて

1

これはJOIN句で行うことができますが、ここでは例を示しますが、これまでに試したテーブルやクエリの実際の定義を、サンプルテーブルのデータとともに提供してくれるでしょう。出力を期待しています...

select s.Name 
from Student s 
join StudentCourse sc 
on sc.StudentId = s.StudentId 
join Course c 
on c.CourseId = sc.CourseId 
where c.CourseId = 123; 

これは、クエリにJOIN句を使用する基本です。しかし、実際のテーブル構造とサンプルデータがあれば、これは役に立ちます。あなたはCourseIdを持っている場合は

CourseIdStudentCourse表に含まれている場合、あなたは本当に、Courseテーブルに参加する必要はありませんが、別に他にのみCourseテーブル内に配置されたものを使用して選択する必要がある場合主キー(CourseId)を入力すると、それに参加する必要があります。

+0

ありがとうございました!私はコーステーブルに参加する必要がありました。私はコース名に基づいて選択しました。 – slash

関連する問題