Basic Join Part 1
CoddyのSQLジャーニー「基礎」セクションの一部。レッスン 43/72。
これまでは、単一のテーブルに関する課題に取り組んできました。ここからは、複数のテーブルをどのように扱うかを見ていきましょう。
次のテーブルがあると仮定しましょう。
courses
| course_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
lecturers
| lecturer_id | name |
|---|---|
| 1 | Jhonas |
| 2 | Malidos |
各 `courses` の情報と、それに対応する `lecturers` の `lecturer_name` を表示することがこの `task` です。
これを実現するには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)とも呼ばれます。
チャレンジ
簡単利用可能な `tables` と `columns`:
<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 の昇順で並べ替えてください。
自分で試してみよう
-- タスクが求める列を、求められたエイリアスを使ってリストする
SELECT ____
FROM students, grades
-- 両方のテーブルが同じ人物を記述している行のペアのみを残す
WHERE ____
ORDER BY gradeこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
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自分で練習してみよう: SQLプレイグラウンド