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

推薦する

HTML の空リンク href="#" と href="javascript:void(0)" の違い

# には位置情報が含まれます。デフォルトのアンカーは #top で、これは Web ページの上部です...

フレックスレイアウトでコンテナ内のコンテンツを維持するためのソリューションの詳細な説明

モバイル側では、フレックスレイアウトが非常に便利です。デバイスの幅に応じてコンテナの幅を自動的に調整...

MySQL 面接でよく聞かれる質問への回答

序文:さまざまな技術職の面接では、MySQL 関連の質問がよくされるようです。開発職の面接でも運用職...

スーパーバイザーを使用して nginx + tomcat コンテナを管理する例

必要: docker を使用して nginx + tomcat デュアル プロセスを起動します。実際...

vue3でDOMをマウントするためのプラグインを書く際の問題について

vue2と比較して、vue3にはアプリの概念が追加され、vue3プロジェクトの作成も // メイン....

vue3 タイムスタンプ変換 (フィルターを使用せずに)

vue2 では、タイムスタンプを変換するときに、通常はフィルターを使用します。vue3 以降では、...

MySQL Binlog ログ処理ツールの比較分析

目次運河マクスウェルデータバスAlibaba Cloud のデータ転送サービス (DTS)運河ポジシ...

HTML の隠しフィールドの紹介と例

基本的な構文: <input type="hidden" name=&qu...

MySQL 入門 - 概念

1. それは何ですか? MySQL は最も人気のあるリレーショナル データベース管理システムです。W...

Dockerオーバーレイはホスト間のコンテナ相互通信を実現します

目次1. Dockerの設定2. レジストリとネットワークを作成する3. コンテナを起動する環境説明...

複数の例で HTML フォームを使用する方法

参考までに、HTMLフォームの使い方を9つの簡単な例で分析します。具体的な内容は次のとおりです。 1...

vue+rem カスタムカルーセル効果

vue+remを使用したカスタムカルーセルチャートの実装は参考までに。具体的な内容は以下のとおりです...

Docker基盤技術の適用に関する詳細な説明 名前空間Cgroup

Docker の基盤技術: Docker の基盤となる 2 つのコア テクノロジーは、名前空間とコ...

JavaScript 配列の Reduce() メソッドの構文と例の分析

序文Reduce() メソッドは関数を累積器として受け取り、配列内の各値 (左から右へ) が単一の値...

画像ボタンをフォームのリセットボタンとして使用する方法

フォームを作成するときに、送信ボタンとリセットボタンを配置することがよくあります。ページの外観を考慮...