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

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

推薦する

フロントエンドJavaScriptは関数のカリー化を完全に理解している

目次1. カレーとは何か2. カレーの用途3. カリー化ユーティリティ関数をカプセル化する方法 1....

CSSを使用してすべての子要素を選択する方法の詳細な説明

CSS を使用してすべての子要素を再帰的に選択するにはどうすればよいですか?以下の記事では、CSS ...

一般的なCSS3アニメーションの実装方法

1. 何ですかCSS アニメーションは、CSS を使用して拡張マークアップ言語 (XML) 要素をア...

WIN10 に複数のデータベースがインストールされている場合にコンピュータの速度低下を防ぐ方法

必要なときにサービスを有効にし、必要がないときは無効にします。データベース サービスを管理する方法:...

nginx のフロントエンドとバックエンドに同じドメイン名を設定する方法

この記事では、主にnginxのフロントエンドとバックエンドに同じドメイン名を設定する方法を紹介し、皆...

Docker コンテナのカスタム ホストのネットワーク アクセス操作

docker-compose.yml に extra_hosts キーワードを追加すると、コンテナの...

js の toString メソッドの 3 つの機能

目次1. toStringメソッドの3つの機能2. オブジェクトを表す文字列を返す3. カスタム t...

jQueryはクッキーを操作する

コードをコピーコードは次のとおりです。 jQuery.cookie = 関数(名前、値、オプション)...

経験豊富な人が、プロフェッショナルで標準化されたMySQL起動スクリプトの開発方法を紹介します。

シェル スクリプト言語は、すべてのプログラミング言語の中で最も単純な言語であるため、資格のある Li...

HTMLテーブルではテーブルの外側の境界線のみが表示されます

質問があります。Dreamweaver で、3 行 1 列のログイン フォーム (ログイン、登録、パ...

MySQL ステートメントの概要

目次1. データベースの使用を選択2. 情報を表示する3. テーブルを作成する4. データを挿入する...

Vue プロジェクトで addRoutes を使用する際の問題の解決策

目次序文1. 404 ページ1. 原因2. 解決策2.白い画面を更新する1. 原因2. 解決策3. ...

MySQL で誕生日から年齢を計算する複数の方法

以前はMySQLをあまり使用していなかったため、MySQLの機能にあまり詳しくありませんでした。この...

MySQL の count()、group by、order by の詳細な説明

最近、IM を実行するときに、これらの 3 つのキーワードを同時に使用したときに問題が発生しました。...

Linux プロセスが占有するポート番号を表示する 6 つの方法

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...