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

チャレンジ:LEFT、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_idテーブルからcourses.course_namecourses.descriptionenrollments.student_nameenrollments.enrollment_datecoursesのカラムを取得します。
  • enrollmentsテーブルをLEFT JOINで結合します。
  • 両テーブルの共通カラムはcourses.course_id = enrollments.course_idです。

解答

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

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

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

セクション 3.  5
single

single

AIに質問する

expand

AIに質問する

ChatGPT

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

some-alt