Basic Join Part 1
CoddyのSQLジャーニー「基礎」セクションの一部 — レッスン 43/72。
これまで、単一テーブルの問題を扱ってきました。今度は、複数のテーブルを扱う方法を検討します。
以下のテーブルがあると仮定します:
コース
| course_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
講師
| lecturer_id | name |
|---|---|
| 1 | Jhonas |
| 2 | Malidos |
タスクは、各コースに対応する講師の名前を表示することです。
これを達成する方法は2つあります。各オプションでは、一方のテーブルの各行を他方のテーブルにマッチングします。満たされる必要がある条件をチェックし、条件が満たされれば2つの行を1つに結合します。両方のオプションの望ましい結果:
| course_id | lecturer_name |
|---|---|
| 1 | Jhonas |
| 2 | Jhonas |
| 3 | Malidos |
オプション 1:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_idここでは FROM キーワードに2つのテーブルを記述し、WHERE 句では両方のレコードの lecturer_id が同じであることを要求します。SELECT 句では table.column と記述することで、データベースが列をどこから取得するかを知ることができます。
オプション 2:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses
JOIN lecturers ON courses.lecturer_id = lecturers.lecturer_idWHERE の代わりに JOIN table ON condition を使用します
この種の結合は、inner joinとも呼ばれます。
チャレンジ
簡単利用可能なテーブルと列:
<strong>grades</strong>:<strong>course_id</strong>,<strong>student_id</strong>,<strong>grade</strong><strong>students</strong>:<strong>id</strong>,<strong>name</strong>
student_name、course_id、student_id および grade を1つのテーブルで取得するクエリを作成してください。結果を grade の昇順で並べ替えてください。
チートシート
複数のテーブルからデータを結合するには、WHERE を使用したカンマ構文または JOIN 構文を使用します:
オプション 1: WHERE を使用したカンマ構文
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.id = table2.idオプション 2: JOIN 構文
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.id = table2.id複数のテーブルから選択する際は、列がどのテーブルから来るかを指定するために table.column 構文を使用します。このタイプの結合はインナージョインと呼ばれます。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns