7つのMySQL JOINタイプのまとめ

7つのMySQL JOINタイプのまとめ

始める前に、これから紹介する JOIN タイプを示すために 2 つのテーブルを作成します。

テーブルを作成する

テーブル `tbl_dept` を作成します (
   `id` INT(11) NOT NULL AUTO_INCREMENT,
   `deptName` VARCHAR(30) デフォルト NULL,
   `locAdd` VARCHAR(40) デフォルト NULL,
   主キー (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 デフォルト CHARSET=utf8;
テーブル `tbl_emp` を作成します (
   `id` INT(11) NOT NULL AUTO_INCREMENT,
   `name` VARCHAR(20) デフォルト NULL,
   `deptId` VARCHAR(11) NOT NULL,
   主キー (`id`)、
   キー `fk_dept_id` (`deptId`)
) ENGINE=INNODB AUTO_INCREMENT=1 デフォルト CHARSET=utf8;

データの初期化

7種類のJOIN

1. A∩B

 SELECT <選択リスト>
 表AからA
 INNER JOIN TableB B # TOTAL ON A.Key = B.Key 

2. A ( = A ∩ B + A* )

 SELECT <選択リスト>
 表AからA
 LEFT JOIN テーブルB B
 Aキーオン = Bキー

3. B ( = A ∩ B + B* )

 SELECT <選択リスト>
 表AからA
 右結合テーブルB B
 Aキーオン = Bキー

4. A* ( = A - A ∩ B )

 SELECT <選択リスト>
 表AからA
 LEFT JOIN テーブルB B
 ON A.Key = B.Key # メインテーブルは ON WHERE B.Key IS NULL のときに保持されます # テーブル A のデータをフィルターします

5. B* ( = B - A ∩ B )

 SELECT <選択リスト>
 表AからA
 右結合テーブルB B
 Aキーオン = Bキー
 A.KeyがNULLの場合

6. A∪B

 SELECT <選択リスト>
 表AからA
 FULL OUTER JOIN TableB B ## FULL OUTER ON A.Key = B.Key は Oracle でのみサポートされています

7. A ∪ B - A ∩ B

 SELECT <選択リスト>
 表AからA
 完全外部結合 テーブルB B
 Aキーオン = Bキー
 A.Key が NULL であるか、B.Key が NULL である場合

これで、7 つの MySQL JOIN タイプに関するこの記事は終了です。MySQL の結合タイプの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MYSQL データベースの基礎 - 結合操作の原理
  • MySQL 結合バッファの原理
  • mysql-joinsの具体的な使用方法
  • MySQL 結合クエリ構文と例
  • MySQL におけるさまざまな一般的な結合テーブルクエリの例の概要
  • MySQLの7つのJOINの具体的な使い方

<<:  CSSを使用してアダプティブスクエアを実装する方法の例

>>:  メタ情報に基づいて時間指定のページ更新またはリダイレクトを実装する

推薦する

MYSQL トランザクション チュートリアル Yii2.0 マーチャント引き出し機能

序文私はプログラマーとしてスタートした PHP プログラマーです。これまで、トレーニング コースで勉...

my.cnf (my.ini) 重要なパラメータの最適化設定手順

MyISAM ストレージエンジンMyISAM ストレージ エンジンは、書き込みよりも読み取りが多く、...

MySQL エラー コード 1862 の解決方法: パスワードの有効期限が切れています

ブロガーは 1 ~ 2 か月間 MySQL を使用していませんでしたが、今日この問題に遭遇しました。...

MySQL 8.0.23 インストールの超詳細なチュートリアル

目次序文1. 公式サイトからMySQLをダウンロードする2. 解凍ファイルを設定する3. 初期化4....

Docker を使用した nGrinder パフォーマンス テスト プラットフォームの導入プロセスの分析

nGrinderとは何ですか? nGrinder は、スクリプトの作成、テストの実行、監視、結果レポ...

Docker+K8S+GitLab/SVN+Jenkins+Harbor をベースにした継続的インテグレーション配信環境の構築に関する詳細なチュートリアル

目次環境設定の概要1.K8Sとは何ですか? 2. K8S を使用する理由3. K8S を使用する利点...

均一なアニメーション効果を実現するJavaScript

この記事の例では、JavaScriptで等速アニメーションを実装するための具体的なコードを参考までに...

Unicode 署名 BOM の詳細な説明

Unicode 署名 BOM - BOM とは何ですか? BOM は Byte Order Mark...

MySQL でコマンドを使用して階層検索を実現する方法の詳細な説明

序文この記事は主にMySQLコマンド階層検索ヘルプの使用に関する内容を紹介します。この記事のサンプル...

初心者向けの一般的な Linux システムコマンドの完全なリスト

Linux コマンドの学習は、ほとんどの初心者にとって最大の障害です。今日は、Linux システムで...

MySQL 8.0.25 解凍版のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.25解凍版のインストールチュートリアル、参考までに具体的な内容は以下のとおりです...

Alpine イメージに Ansible サービスを追加する方法

apk add ansible を使用して、alpine イメージに ansible サービスを追加...

完全バックアップとポイントインタイムバックアップにmysqldumpを使用する方法

Mysqldump は MySQL の論理バックアップに使用されます。高速ではありませんが、柔軟性が...

docker によってプルされたイメージがどこに保存されるかの詳細な説明

docker によってプルされたコマンドは、デフォルトでは /var/lib/docker/ フォル...

axios でリクエストをキャンセルし、重複リクエストを防ぐ方法について簡単に説明します。

目次序文コア - キャンセルトークン実用的なアプリケーションとパッケージングいくつかの小さな詳細序文...