INNER JOINとLEFT JOINの違いを理解する
作成日:2023.04.09
SQLでのテーブル結合には、主にINNER JOINとLEFT JOINがありますが、これらの違いを理解することは重要です。この記事では、二つのテーブルを使用して、それぞれの結合方法を実行した結果を比較し、INNER JOINがどうデータをフィルタリングし、LEFT JOINがどう欠損データも取得するかを解説します。
error この記事は最終更新日から1年以上が経過しています。
テーブル結合 inner join と left join の性質の違い。
以下の二つのテーブルがあるとする。
user_id | name |
---|---|
1 | Tatsuya |
2 | Nanaka |
3 | Homura |
user_id | favorite |
---|---|
1 | 珈琲 |
1 | チョコ |
2 | 緑茶 |
上記二つのテーブルを inner join した場合、
select user_table.user_id,user_table.name,favorite_table.favorite from user_table inner join user_table.user_id = favorite_table.user_id;
実行結果は以下のようになる。
user_id | name | favorite |
---|---|---|
1 | Tatsuya | 珈琲 |
1 | Tatsuya | チョコ |
2 | Nanaka | 緑茶 |
つまり、 favorite_table にデータの存在しない user_id = 3 の値は取得しない。
一方、 left join の場合、
select user_table.user_id,user_table.name,favorite_table.favorite from user_table left join user_table.user_id = favorite_table.user_id;
実行結果は以下。
user_id | name | favorite |
---|---|---|
1 | Tatsuya | 珈琲 |
1 | Tatsuya | チョコ |
2 | Nanaka | 緑茶 |
3 | Homura |
こちらの場合は、 favorite_table にデータの存在しない user_id = 3 の値も取得できる。
MySQLのUPDATE文を使ったカラム値の一括置換
2025.02.06
MySQLで特定のカラム内の文字列を簡単に置換する方法を紹介します。この記事では、UPDATE文とREPLACE関数を組み合わせて、効率的にデータを更新する方法を解説します。
MySQLで新規カラムに既存データを一括登録する方法
2025.02.03
MySQLのUPDATE文を活用し、テーブルの新規カラム「更新日」に既存データ「作成日」を効率的に反映する手法を解説します。
PHPとOpenAI APIで簡単なチャットシステムのコードを書いてみた
2023.04.13
PHPとOpenAI APIを使ってチャットボットを作成し、ユーザーとAIが対話できる基本的なプログラムを紹介します。サーバーに保存したチャット履歴を基に、APIから取得したレスポンスをデータベースに記録し、チャット形式で対話を進めていくサンプルコードを用意しました。
PHPでMySQLに接続してデータを取得する基本テンプレ
2023.04.11
PHPでMySQLに接続し、データを取得する基本的な手順のテンプレ。mysqli拡張を使用したデータベース接続から、SQLクエリ実行、結果の取得までの処理を掲載しています。