さまざまな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 でローカルあいまい検索機能を実装する方法の例

推薦する

HTML における <meta> タグの使用に関する詳細な説明

私たちが作成する Web ページでは、より多くの人々に訪問してもらいたい場合、検索エンジンを使用して...

Javascript 文字列メソッドの詳細な説明

目次文字列の長さ: 長さcharAt() charCodeAt()文字列に値が含まれているかどうかを...

HTML の順序なしリストタグと順序付きリストタグの使用例

1. 上部と下部のリストタグ: <dl>..</dl>:上dt下層dd: カ...

MySQLでNULL値を判定する際の落とし穴事例

目次序文Mysql の case when 構文:事例実践:要約:序文今日、プログラムを開発している...

Dockerのオンラインおよびオフラインインストールと一般的なコマンド操作

1. テスト環境名前バージョンセント7.6ドッカー18.09.06 2. オンラインインストールここ...

ボタンの権限判定を実装するためのVueカスタムv-has命令

アプリケーションシナリオバックグラウンド管理システムを例にとると、各ユーザーには異なるボタン権限があ...

CSSの記述形式、モバイルページの基本構造の詳細な説明

1. CSSの記述形式1. インラインスタイルCSSコードを開始タグに直接記述することができます&l...

Kubernetes コントローラーとラベルの簡単な分析

目次01 k8sの一般的なコントローラーRCコントローラーデプロイメント コントローラーステートフル...

Vue の大容量ファイルアップロードとブレークポイント再開アップロードの実装

目次ファイルアップロードのための2つのソリューションファイルストリーム(フォームデータ)に基づくクラ...

jquery-multiselect を使用した IE6 のバグの解決方法

jquery-multiselect (ドロップダウン ボックスをチェックボックス付きの複数選択コン...

Linux 環境の Apache サーバーでセカンダリドメイン名を設定する方法の詳細な説明

この記事では、Linux 環境の Apache サーバーでセカンダリ ドメイン名を構成する方法につい...

Mysql general_log をクリーンアップする方法の概要

方法1: グローバル general_log を 'OFF' に設定します。 テーブ...

Vue cli開発に基づく外部コンポーネントVantのデフォルトスタイルの変更の詳細な説明

目次序文1. 少ない2. コンポーネントをインポートする3. 設定ファイルを変更するステップ1: l...

MySQL最適化ソリューション: スロークエリログを有効にする

目次序文スロークエリログの設定テスト付録: ログ解析ツール mysqldumpslow要約する序文こ...

WeChat アプレット学習 WXS 使用方法チュートリアル

wxsとは何ですか? wxs (WeiXin Script) は、小規模プログラム用のスクリプト言語...