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 コンテナ サービスの更新と見つかった問題の概要

推薦する

DockerにElasticsearch7.6クラスタをインストールしてパスワードを設定する方法

目次基本的な設定バージョンとDockerイメージについて始めるelasticsearch.ymlにつ...

Navicat による MySQL パーティショニングの実践

MySQLのパーティショニングは、非常に大きなテーブルを管理するのに役立ちます。MySQLのパーティ...

VS2022 リモート デバッグ ツールの使い方

WeChat 関連サービスをデバッグする場合など、職場のサーバー環境でリモートデバッグを行う必要があ...

訪問者を惹きつけるウェブサイトコンテンツを作成する14の方法

ネットサーフィンをしていると、私の注意を引こうとする美しいグラフィックでいっぱいの Web サイトを...

MySQL 8.0.23 無料インストールバージョンの設定詳細チュートリアル

最初のステップは、MySQL 8.0.23の無料インストールバージョンをダウンロードすることです。 ...

Linux で複数の mysql5.7.19 (tar.gz) ファイルをインストールする方法

LinuxでのMySQL-5.7.19バージョンの初心者向けの最初のインストールについては、前の記事...

Linux で文字列を整理するためのヒント

Linuxの操作では、ファイル内の文字列を置換したりカウントしたりすることが多いです。ここでまとめを...

Linux システムで MySQL データベースにリモート接続する方法のチュートリアル

序文最近、職場でこの要件に遭遇し、リモート接続を確立するのに 1 時間以上かかりました。ローカル コ...

Webフロントエンドインターフェースの設計に必須のスキル

[必須] ユーザーインターフェースPhotoShop/花火デザインアーティストと協力して、スケッチを...

非常に実用的なMySQL関数の包括的な概要、詳細な例の分析チュートリアル

目次1. MySQLの関数の説明2. 単行関数の分類3. キャラクター機能4. 数学関数5. 日付と...

Navicat for MySql ビジュアルインポート CSV ファイル

この記事では、参考までに、Navicat for MySql の CSV ファイルのビジュアルインポ...

HTML およびプラグイン アプリケーションにおけるデータ カスタム属性の使用の概要

HTML にはデータ属性が含まれていることがよくあります。これらは HTML5 のカスタム属性です。...

Node.js で MySQL データベースにバッチデータを挿入する方法

プロジェクト(nodejs)では、一度に複数のデータをデータベースに挿入する必要があります。データベ...

別の種類の「キャンセル」ボタン

「キャンセル」ボタンは必要な操作プロセスの一部ではなく、デザイン上の主要な要素として表示されません...

PCとモバイルの適応の問題に対する迅速な解決策

Web ページを作成する場合、通常、コンピューターの画面サイズと携帯電話の画面サイズの違いなどの問題...