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

推薦する

ノードにおけるhttpモジュールの使用と実行プロセス

ノードにおけるhttpの役割は何ですか? httpモジュールの役割は、サーバーの作成と記述を支援する...

Centos 7 64 ビット デスクトップ バージョンのインストール グラフィック チュートリアル

システムが遅いと感じてソースを変更したい場合は、別の記事で整理しました https://blog.c...

HTML(divレイヤー)を介してFLASHにリンクを追加するための実装コード

今日、クライアントが広告を掲載したいのですが、提供された素材は Flash です。私たちはあまり気に...

Kafka の Docker デプロイメントと Spring Kafka 実装

この記事は主にDockerによるKafkaのデプロイとSpring Kafkaの実装について紹介しま...

CSS トップに戻る コード例

最近のウェブサイトのほとんどはページが長く、4 画面または 5 画面の長さのものもあれば、2 画面ま...

Dockerを使用してSpringBootプロジェクトをデプロイする方法

Docker テクノロジの開発により、マイクロサービスの実装にさらに便利な環境が提供されます。Doc...

Dockerコンテナを停止または強制終了できない問題の解決策

Docker バージョン 1.13.1問題プロセス特定の環境のMySQLコンテナを停止、強制終了、ま...

JavaScript ベースのランダム点呼システムの実装

この記事では、ランダムロールコーラーを実装するためのJavaScriptの具体的なコードを参考までに...

純粋な HTML ページを送信し、パラメータを渡し、ID を確認する方法

プロジェクトにはアンケートが必要ですが、クライアントはアンケートのタイトルが純粋なHTMLタグでなけ...

HTML における src と href の違いについての簡単な説明

簡単に言うと、srcは「このリソースをロードしたい」という意味で、hrefは「このリソースに関連付け...

IE ブラウザの HTML ハック タグの概要

コードをコピーコードは次のとおりです。 <!--[if !IE]><!-->...

js で 0ms 遅延タイマーを実装するいくつかの方法

目次キューマイクロタスク非同期/待機メッセージチャネルやっと付録ここ二日間、「タイムリーな setT...

MySQL5.7.21 解凍版インストール詳細チュートリアル図

私は頻繁にシステムをインストールするので、インストールのたびにいくつかのソフトウェアを再インストール...

メタ宣言注釈の手順

メタ宣言注釈の手順: 1. モバイル ページと 1 対 1 で対応するすべての PC ページを分類し...

Apacheドメイン名設定の落とし穴の詳細な説明

私はApacheを使ったことがありません。仕事を始めてからはずっとnginxを使っていました(運用保...