SQLで3つのテーブルを結合する方法
ページ名:SQLで3つのテーブルを結合する方法
SQLでテーブルを扱うとき、3つ以上のテーブルに問い合わせる必要がある場合があります。 3つのテーブルを結合するには、まずjoinステートメントを使って2つのテーブルを結合し、一時的な結合テーブルを作成します。 そして、2つ目のjoin文で3つ目のテーブルをjoinします。
1
SELECTと入力し、その後に問い合わせたいカラム名を入力する。 問い合わせたい3つのカラム名をそれぞれ入力する。 各カラム名はカンマで区切ります。 この例では、"Students"、"Schools"、"Details "という3つのテーブルからクエリを実行します。
- 例 SELECT student_id、student_name、school_id、school、grade
2
FROMの後に最初のテーブル名を入力します。 これは別の行でも、最初のステートメントの直後でもかまいません。 この例では、FROM Studentsと入力します。
3
結合文の後に2つ目のテーブル名を入力します。 2つのテーブルを結合するには、4種類の結合文があります。 それらは以下の通りです:
- JOINと入力して内部結合を行う。 これは、両方のテーブルで一致する値を持つレコードを返します。 たとえば、FROM Students JOIN Detailsのようになります。
- LEFT JOINと入力して、外側左結合を実行します。 これは、左のテーブルからすべてのレコードを返し、右のテーブルから一致する値を返します。 例えば、FROM Students LEFT JOIN Details。
- RIGHT JOINと入力して外側右結合を実行します。 これは、右のテーブルからのすべてのレコードと左のテーブルからの一致する値を返します。 例えば、FROM Students RIGHT JOIN Details。
- FULL JOINと入力して完全外部結合を実行します。 これは両方のテーブルからすべてのレコードを返します。 例えば、FROM Students FULL JOIN Details。
4
結合するテーブルとカラムに "ON" ステートメントを入力します。 この文の構文は、"ON table_1.primary_key = table_2.foreign_key "です。 "table_1 "は結合する最初のテーブルの名前で、"primary_key "は最初のテーブルの主カラム名である。 "table_2 "は2つ目のテーブルの名前で、"foreign_key "は2つ目のテーブルのカラム名で、1つ目のテーブルの主カラムと一致するものです。
- この例では、"Students "が最初のテーブルで、"student_id "がStudentsテーブルの主キーです。 したがって、ON Students.student_id = Details.student_idと入力します。 これは、主キーとして "student_id "を使用して、StudentsテーブルとDetailsテーブルを結合します。
- あるいは、student_nameカラムが「Details」テーブルにある場合、ON Students.student_id = Details.student_nameと入力することで、student_idフィールドの代わりにstudent_nameカラムを表示することができます。
5
結合ステートメントの後に3つ目のテーブル名を入力します。 これは別の行でも、最初の2つのテーブルを結合した "ON "ステートメントの直後でもかまいません。 4つの結合文のうち、どれを使ってもかまいません。
- この例では、JOIN Schoolsと入力します。
6
どのテーブルとカラムを結合するかを示す "ON "ステートメントを入力します。 3番目の結合の構文は、"ON table_3.primary_key = table_1.foreign_key "です。 "テーブル_1"。 「table_3は3つ目のテーブルの名前です。 これは、3つ目のテーブルの主カラム名と1つ目のテーブルの外部キーを使用して、テーブル3を最終結合に追加します。 この例では、ON Schools.student_id = Students.student_idと入力します。 ジョインステートメント全体は次のようになります:
SELECT student_id, student_name, school_id, school, grade FROM Students FULL JOIN Details ON Students.student_id = Details.student_id JOIN Schools ON Schools.student_id = Students.student_id
この記事は、CC BY-NC-SAの下で公開されている " How to Join Three Tables in SQL " を修正して作成しました。特に断りのない限り、CC BY-NC-SAの下で利用可能です。
シェアボタン: このページをSNSに投稿するのに便利です。
コメント
最新を表示する
NG表示方式
NGID一覧