0

基本的に私がやりたいことは、2つのテーブルでINNER JOINを使用することですが、テーブルAから特定の行とテーブルBから対応する行のみを選択しますか?

テーブル A は「コース」と呼ばれ、列「course_title」の下で「Calculus」、「British Literature I」、および「Studio Art」と呼ばれるエントリと、それに対応する「department_id」を選択したいと考えています。列「department_id」と「department_name」を持つ「departments」と呼ばれる 2 番目のテーブルとの INNER JOIN を作成するための参照として「department_id」を使用します。

私がこれを行うと考えた唯一の方法は、UNIONを使用して3つの特定のコースを選択することですが、INNER JOINをそれで動作させる方法がわかりませんか? いくつかの異なるタイプの構文を試しましたが、エラーが発生し続けます。これが私の試みの1つです:

(SELECT course.course_title, cours' at line 1
mysql> (SELECT course_title, department_id FROM course WHERE course_title = 'Calculus')
-> UNION
-> (SELECT course_title, department_id FROM course WHERE course_title = 'British Literature I')
-> UNION
-> (SELECT course_title, department_id FROM course WHERE course_title = 'Studio Art I')
-> UNION
-> (SELECT department_name, department_id FROM departments)
-> FROM departments INNER JOIN course ON departments.department_id = course.department_id;

これが私の試みのもう1つです:

(SELECT course.course_title, course.department_id, departments.department_id, departments.department_name WHERE course.course_title = 'Calculus')
-> UNION
-> (SELECT course.course_title, course.department_id, departments.department_id, departments.department_name WHERE course.course_title = 'British Literature I')
-> UNION
-> (SELECT course.course_title, course.department_id, departments.department_id, departments.department_name WHERE course.course_title = 'Studio Art I')
-> FROM departments INNER JOIN course ON departments.department_id = course.department_id;

これが機能するかどうかについてのアイデアはありますか? その場合、構文を修正するにはどうすればよいですか? そうでない場合、別の方法は何ですか?

ありがとうございました!!

4

2 に答える 2

2

IN句を使用する必要があります...

このような

WHERE course IN ('Calculus','Physics','Art')
于 2013-04-03T21:27:56.620 に答える
2

以下のようにクエリを書くことができます。

SELECT course.course_title, course.department_id, departments.department_id, departments.department_name 
FROM departments 
  INNER JOIN course ON departments.department_id = course.department_id
WHERE course.course_title IN ('Calculus', 'British Literature I','Studio Art I')
于 2013-04-03T21:29:44.407 に答える