Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ LEFT、RIGHT、INNER結合 | テーブルの結合
/
中級SQL
セクション 3.  5
single

single

bookLEFT、RIGHT、INNER結合

メニューを表示するにはスワイプしてください

オンラインストアは在庫が少なくなったため、サプライヤーに追加の商品を発注しました。そのため、出荷が到着するまで少し時間があります。

この機会に新しいことを学びましょう。これまでSQLで標準のJOINを使用してきましたが、他にもさまざまな種類の結合があります。

主なテーブル結合の4種類は以下の通りです:

INNER JOIN: 両方のテーブルで一致する値を持つ行を返します。これはこれまで使用してきた標準のJOINと同じです。

LEFT JOIN: 左側のテーブルのすべての行と、右側のテーブルで一致する行を返します。一致しない場合、右側のテーブルにはNULLが返されます。

RIGHT JOIN: 右側のテーブルのすべての行と、左側のテーブルで一致する行を返します。一致しない場合、左側のテーブルにはNULLが返されます。

FULL JOIN: いずれかのテーブルに一致する行がある場合、すべての行を返す。どちらにも一致しない場合、他方のテーブルの欠損値には NULL が返される:

これらの結合を使用する前に、操作対象となる2つのテーブルを確認。コースの詳細と、それに登録している学生の情報を含む。

courses:

enrollments:

これらの種類の結合を使用する構文は実際には簡単です。おなじみの JOININNER JOIN の代わりに、LEFT JOIN などの他の種類の JOIN を指定します。

SELECT table1.column, table2.column 
FROM table1 -- this is the LEFT table
LEFT JOIN table 2 -- this is the RIGHT table
ON table1.common_column = table2.common_column
タスク

スワイプしてコーディングを開始

すべてのコースと、そのコースに登録している学生の一覧を取得してください。登録学生がいないコースも含めて取得する必要があります。

以下のカラムをこの順序で取得してください:

courses.course_id,
courses.course_name,
courses.description,
enrollments.student_name,
enrollments.enrollment_date

この課題を解決するために、適切な種類のJOINを使用してください。

簡単な手順

  • courses.course_idcourses.course_namecourses.descriptionenrollments.student_nameenrollments.enrollment_dateの各カラムをcoursesテーブルから取得します。
  • enrollmentsテーブルをLEFT JOINで結合します。
  • 両テーブルの共通カラムはcourses.course_id = enrollments.course_idです。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  5
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt