2

クラスを受講しているすべての学生の学生の名、姓、コース番号、およびコース名を表示するクエリを作成します。内部結合を使用します。出力列の Student First、Student Last、Course Number、および Course Name にラベルを付けます。7行あるはずです。

私の研究室での質問です。

学生、コース、登録の3つのテーブルがあります

コースに登録されている学生の名前を取得できます

select firstname,lastname from students
inner join on registration students.studentid=registration.studentid

しかし、教師がコーステーブルから返すことを望んでいる他のデータを取得しようとすると、うまくいきません。

select firstname,lastname,coursenumber,coursename from students,courses
inner join registration on students.studentid=registration.studentid

しかし、on句のunknown column students.studentidというエラーが表示されます。

4

2 に答える 2

2

registrationとの間の結合条件がありませんでしたcourses。暗黙的な s と明示的なINNER JOINs の奇妙な組み合わせがあります。あなたの join intoは、 to を介して結合されたcourses別のものである必要があります。INNER JOINregistrationstudents

SELECT
  firstname, /* <-- don't forget to label your columns as required */
  lastname,
  coursenumber,
  coursename 
FROM
  students
  /* `students` map into courses via many-to-many relation in `registration` */
  INNER JOIN registration on students.studentid = registration.studentid
  /* Inner join through `registration` into `courses` */
  INNER JOIN courses ON registration.courseid = courses.courseid

また、列出力の命名要件を満たすために、列の別名を忘れないでください。ASリストでキーワードを使用しますSELECT。課題のその部分はあなたに解決してもらいます。

出力列に Student First、Student Last、Course Number、および Course Name のラベルを付けます。

于 2012-11-16T03:02:08.003 に答える
0
select firstname,lastname,coursenumber,coursename from students
inner join registration on students.studentid=registration.studentid
JOIN courses  ON courses.courseid = registration.courseid

クエリで言及coursesしましたが、何もしませんでしjoinた。

于 2012-11-16T03:02:14.550 に答える