さまざまなSQL結合を簡単に学ぶ

さまざまなSQL結合を簡単に学ぶ

SQL JOIN 句は、テーブル間の共通フィールドに基づいて 2 つ以上のテーブルの行を結合するために使用されます。

最も一般的な JOIN タイプは、SQL INNER JOIN (単純 JOIN)、SQL LEFT JOIN、SQL RIGHT JOIN、SQL FULL JOIN です。前者は内部結合で、後者の 3 つは外部結合です。

2 つのテーブルがあり、テーブル A が左側のテーブルで、テーブル B が右側のテーブルであるとします。

id名前
1グーグル
2タオバオ
3微博
4フェイスブック
id住所
1アメリカ合衆国
5中国
3中国
6アメリカ合衆国

内部結合

内部結合は最も一般的な結合タイプであり、一致する行のみを結合します。

内部結合構文

列名を選択
表1より
INNER JOIN テーブル 2
の上
テーブル 1.列名 = テーブル 2.列名

: INNER JOINはJOINと同じです

INNER JOIN によって生成される結果セットは、1 と 2 の積集合です。

テーブルAから*を選択し、テーブルBを内部結合する
表A.id=表B.id

上記の SQL を実行した場合の出力は次のようになります。

id名前住所
1グーグルアメリカ合衆国
3微博中国

左結合

LEFT JOIN は、左側のテーブルのすべての行と、ON 条件を満たす右側のテーブルの行を返します。左側のテーブルの行が右側のテーブルと一致しない場合、この行に対応する右側のテーブルのデータは NULL に置き換えられます。

LEFT JOIN 構文

列名を選択
表1より
LEFT JOIN テーブル 2
ON テーブル 1.列名 = テーブル 2.列名

注: 一部のデータベースでは、LEFT JOINはLEFT OUTER JOINと呼ばれます。

LEFT JOIN はテーブル 1 の完全なセットを生成し、一致するものがない場合、テーブル 2 の一致する値は null 値に置き換えられます。

テーブルAから*を選択し、テーブルBを左結合する
表A.id=表B.id

上記の SQL を実行した場合の出力は次のようになります。

id名前住所
1グーグルアメリカ合衆国
2タオバオヌル
3微博中国
4フェイスブックヌル

右結合

RIGHT JOIN は、右側のテーブルのすべての行と、ON 条件を満たす左側のテーブルの行を返します。右側のテーブルの行が左側のテーブルと一致しない場合、左側のテーブルの対応するデータは NULL に置き換えられます。

RIGHT JOIN 構文

列名を選択
表1より
テーブル2を右結合
ON テーブル 1.列名 = テーブル 2.列名

注: 一部のデータベースでは、RIGHT JOIN は RIGHT OUTER JOIN と呼ばれます。

RIGHT JOIN はテーブル 2 の完全なセットを生成し、一致するものがない場合、テーブル 1 の一致する値は null 値に置き換えられます。

テーブルAから*を選択し、テーブルBを右結合する
表A.id=表B.id

上記の SQL を実行した場合の出力は次のようになります。

id名前住所
1グーグルアメリカ合衆国
5ヌル中国
3微博中国
6ヌルアメリカ合衆国

完全外部結合

FULL JOIN は、左側のテーブルと右側のテーブルの両方からすべての行を返します。一方のテーブルの行にもう一方のテーブルに一致する行がない場合、反対の行は NULL に置き換えられます。

FULL OUTER JOIN 構文

列名を選択
表1より
FULL OUTER JOIN テーブル 2
ON テーブル 1.列名 = テーブル 2.列名

FULL OUTER JOIN は 1 と 2 の結合を生成します。ただし、一致しないレコードの場合、値として null が使用されることに注意してください。

テーブルAから*を選択し、テーブルBを完全外部結合する
表A.id=表B.id

上記の SQL を実行した場合の出力は次のようになります。

id名前住所
1グーグルアメリカ合衆国
2タオバオヌル
3微博中国
4フェイスブックヌル
5ヌル中国
6ヌルアメリカ合衆国

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • SQL と MySQL のステートメント実行順序の分析
  • SQL文の実行順序の詳細な説明
  • SQL文の実行順序の図による説明
  • SQL Server での SELECT ステートメントの実行順序
  • SQL SELECT文の完全な実行シーケンス
  • MySQLにおける(JOIN/ORDER BY)文のクエリ処理と最適化方法
  • SQL 結合クエリの内部結合、外部結合、クロス結合の違いの詳細な説明
  • MySQL の左結合操作における on 条件と where 条件の違いの紹介
  • SQL の左結合と on および where 条件キーワードの違いの詳細な説明
  • MySQL の複数の左結合クエリの使用状況の分析

<<:  Windowsタイムサーバーの設定方法の詳しい説明

>>:  フロントエンド JavaScript でローカルあいまい検索機能を実装する方法の例

推薦する

ReactでuseStateを使用する詳細な例

使用状態useState は、関数コンポーネント内で呼び出すことで、コンポーネントに内部状態を追加し...

EclipseにTomcatサーバー設定を追加する方法

1. ウィンドウ -> 設定を選択してEclipseの設定パネルを開きます。 2. 「設定」ウ...

Vue ベースの要素ボタン権限実装ソリューション

背景要件: ERP システムに「ボタン権限制御」機能を追加する必要があり、権限の制御粒度をボタン レ...

3 階層ナビゲーション メニューを実現するための js+css

この記事の例では、3レベルのナビゲーションメニューを実装するためのjs + cssの具体的なコードを...

各グループの最新データを取得するためにMySQLベースのグループを実装する

序文:グループ化関数はグループ内の最初のデータを取得しますが、各グループ内の最新のデータを取得する必...

CSSは高さを設定せずにdivを完全に中央に配置することを実現します

必要とする本文の下のdivは垂直方向に中央揃えになっていますdiv 内のテキストを垂直中央に配置する...

MySQLはinet_atonとinet_ntoaを使用してIPアドレスデータを処理します。

この記事では、適切な形式を使用して IP アドレス データをデータベースに保存し、IP アドレスを簡...

HTML相対パスの親ディレクトリと子ディレクトリの書き方

親ディレクトリを指定する方法../ はソース ファイルの親ディレクトリを表し、../../ はソース...

MySQL はリレーショナルデータベースですか?

MySQL はリレーショナル データベース管理システムです。リレーショナル データベースは、すべて...

JavaScript プロトタイプとプロトタイプチェーンの詳細

目次1. プロトタイプ(明示的なプロトタイプ) 2. __proto__ (暗黙のプロトタイプ) 3...

MySQLデータベースは重複データを削除し、メソッドインスタンスを1つだけ保持します

1. 問題の紹介ユーザー テーブルに 3 つのフィールドが含まれているシナリオを想定します。 id、...

MySQLでANDとORを組み合わせる問題を解決する

以下のように表示されます。 SELECT prod_name,prod_price FROM pro...

mysql 5.7.23 winx64 解凍バージョンのインストールチュートリアル

参考までに、mysql-5.7.23-winx64 解凍版の詳細なインストールチュートリアルです。具...

ウェブデザイン実践者必読のキャリアプラン

原文記事、転載の際は著者と出典を明記してください! Web デザインは間違いなくテクノロジーであり、...

Linuxはバイナリモードを使用してmysqlをインストールします

この記事では、LinuxにバイナリモードでMySQLをインストールする具体的な手順を参考までに紹介し...