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を使用してアダプティブスクエアを実装する方法の例

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

推薦する

SpringBoot プロジェクトの Docker クイック デプロイメントの紹介

1. Dockerをインストールするまず Linux 環境を開き、次のコマンドを入力してインストール...

mysql binlog ログを正しくクリーンアップする 2 つの方法

mysqlはbinlogログを正しくクリーンアップします序文: MySQL の binlog はデー...

位置のいくつかの巧妙な応用の詳細な説明:sticky スティッキーポジショニング

背景: position:sticky はスティッキー配置とも呼ばれます。スティッキー配置の要素は、...

LinuxはNetworkManagerを使用してMACアドレスをランダムに生成します

今では、自宅のソファーに座っていても、外の喫茶店にいても、ノートパソコンの電源を入れてWi-Fiに接...

Javascript 操作メカニズム イベントループ

目次1. 4つのコンセプト1. JavaScriptはシングルスレッドです2. タスクキュー3. 同...

Linux での grep コマンドの使い方の詳細な説明

1. 公式紹介grep は Linux でよく使用されるコマンドです。これは、ファイルやテキストに対...

Dockerのyumソースの設定とCentOS7へのインストールの詳細な説明

ここではCentOS7が使用されており、カーネルバージョンは [root@localhost ~]#...

CSS3 で z-index が効かない問題の解決方法

最近、CSS3 と js の組み合わせを作成したのですが、z-index が有効にならないケースが多...

ポータルサイトのフォーカス画像のデザインに関するいくつかの結論

フォーカス画像は、画像、テキスト、動的なインタラクティブ効果を統合したコンテンツを表示する方法です。...

カルーセル効果を実現するネイティブJavaScript

この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

Apache Webサーバーのインストールと設定方法

信頼性が高く、人気があり、簡単に構成できる Web サーバーである Apache で独自の Web ...

MySQL の where と on の違いと、いつ使用するか

以前、テーブル結合クエリを書いていたとき、whereとonの違いがわからず、SQLに小さな問題が発生...

JSONデータをHTMLで表示する方法

背景:場合によっては、json データをページに直接表示する必要があります (たとえば、インターフェ...

MySQLはカバーインデックスを使用してテーブルリターンを回避し、クエリを最適化します。

序文カバーリング インデックスについて説明する前に、まずそのデータ構造である B+ ツリーを理解する...

HTML レイヤード ボックス シャドウ効果のサンプル コード

まず、画像を見てみましょう。今日はこのエフェクトを作成します。 実は、何でもないんです。Web ペー...