MySQL接続クエリにおけるととwhereの違いの簡単な分析

MySQL接続クエリにおけるととwhereの違いの簡単な分析

1. テーブルを作成する

テーブル「学生」を作成(
  `id` int(11) NULLではない、
  `name` varchar(255) 文字セット utf8mb4 COLLATE utf8mb4_general_ci NULL デフォルト NULL,
  `age` int(11) NULL デフォルト NULL,
  BTREE を使用した主キー (`id`)
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;


INSERT INTO `student` VALUES (1, '张三', 12);
INSERT INTO `student` VALUES (2, '李四', 12);
`student` に VALUES (3, '王五', 12) を挿入します。
INSERT INTO `student` VALUES (4, '赵六', 12);
`student` VALUES (5, '孙七', 12) に INSERT INTO します。
`student` に VALUES (6, 'turtle', 12) を挿入します。
テーブル「グレード」を作成します(
  `id` int(11) NULLではない、
  `sid` int(11) NULL デフォルト NULL,
  `grade` int(11) NULL デフォルト NULL,
  BTREE を使用した主キー (`id`)
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

`grade` VALUES (1, 1, 100) に挿入します。
`grade` VALUES (2, 2, 80) に挿入します。
`grade` VALUES (3, 3, 99) に挿入します。
`grade` VALUES (4, 4, 66) に挿入します。

2. 内部結合

内部結合では、 と where の間に違いはありません。どちらも結合後の結果を使用して条件付きスクリーニングを実行します。

2.1 条件なし

2.2 および条件

2.3 where条件

3. 左結合

3.1 条件なし

3.2 および条件

左結合では、左のテーブルが完全に一致して接続され、その後 AND を使用してフィルタリングされます。条件を満たさない左のテーブルのデータは保持され、右のテーブルのデータは null になります。

3.3 where条件

左結合では、左側のテーブルが完全に接続に一致し、その後、WHERE 句を使用してフィルタリングが行われ、条件を満たすデータのみがフィルタリングされます。

4. 右結合

ベース テーブルが逆になっていることを除いて、3 の左結合と同じです。

5. 結論

  • すべての接続について、接続後に where を使用して条件を満たすデータ行をフィルターし、条件を満たすデータ行のみを保持します。
  • 左結合を使用し、左テーブルをメインテーブルとして使用する場合、左テーブルのすべてのデータは保持され、条件を満たさないデータ行は右テーブルで null に設定されます。
  • 右結合を使用し、右テーブルをメインテーブルとして使用する場合、右テーブルのすべてのデータは保持され、条件を満たさない左テーブルのデータは null になります。

これで、MySQL 接続クエリの と および where の違いに関するこの記事は終了です。MySQL 接続クエリと where に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • And キーワードを使用した MySQL の複数条件クエリ ステートメント
  • MySQL 条件付きクエリと使用法および優先順位の例の分析
  • MySQL での and or クエリの優先度分析
  • MySQL 左結合マルチテーブルクエリの条件記述例
  • PHPがMySQLクエリの結果を配列に変換し、それを連結する例
  • MySQLクエリ条件におけるonとwhereの配置の違いの分析

<<:  JavaScript クロージャの説明

>>:  Docker Consul コンテナ サービスの更新と見つかった問題の概要

推薦する

CentOS7で新しいデータディスクをマウントするための完全な手順

序文新しい VPS を購入しました。新しい VPS のデータ ディスクはデフォルトではシステムにマウ...

VmWareでcentos7をインストールするときにインターネットにアクセスできない問題の解決策

Centos7 のインストール時に VmWare がインターネットにアクセスできない場合はどうすれば...

VMware での Ubuntu 16.04 イメージの完全インストール チュートリアル

この記事では、VMware 12でのUbuntu 16.04イメージのインストールチュートリアルを参...

IE6 および IE7 で DIV コンテナの固定高さを使用するためのヒント

IE6 と IE7 では CSS の解釈に多くの違いがあります。今日はそのうちの 1 つである高さに...

Vueスロットの実装原理についての簡単な説明

目次1. サンプルコード2. 現象を通して本質を見抜く3. 実施原則4. 親コンポーネントのコンパイ...

Ubuntu環境でxdebugをコンパイルしてインストールする方法

この記事では、Ubuntu 環境で xdebug をコンパイルしてインストールする方法について説明し...

MySQL のテーブルリターンとインデックスカバレッジの例の詳細な説明

目次インデックスタイプインデックス構造非クラスター化インデックスクエリインデックスカバー要約するイン...

HTML における if 判断の使用

Django Web開発の過程で、HTMLを書く際にバックエンドから同じ名前のリスト変数が渡されるが...

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

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

Linux で AutoFs マウント サービスをインストールするチュートリアル

Samba サービスでも NFS サービスでも、サーバーの起動時にリモート共有リソースが自動的にマ...

EclipseでTomcatを作成する原理の詳細な説明

ローカルEclipse上にTomcatサーバーを作成する場合、 tomcaインストールディレクトリの...

CSS @font-face パフォーマンス最適化の詳細な理解

この記事では主に、フォント読み込みの最適化に関する一般的な戦略を紹介します。内容の大部分は参考資料と...

MySQL binlog ログを開く方法

binlog は、すべての mysql dml 操作を記録するバイナリ ログ ファイルです。 bin...

デザイン協会: なぜ間違った場所を探したのですか?

数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...

Dockerでボリュームを管理する2つの方法

前回の記事では、Dockerの基礎知識であるローカルディレクトリのマウント方法を紹介しました。今日は...