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

推薦する

Reactコンポーネント通信の詳細な説明

目次コンポーネント通信の概要コンテンツ3つの方法まとめコンポーネントコミュニケーション - 父から息...

HTML テーブルタグと関連する改行の問題の詳細な分析

テーブルとは何ですか?テーブルは、データのキャリアである HTML テーブルです。以下は比較的標準的...

ラベルとスパンの幅設定が無効である問題の解決

デフォルトでは、ラベルとスパンの幅の設定は無効です。一般的に、表示属性は必須ですコードをコピーコード...

コードブロックのハイライトをコピーして表示できる js プラグイン highlight.js + clipboard.js 統合

主に2つの側面から: 1. ハイライト/改行2. コードのコピーボタンこれら両方には既製のプラグイン...

オーディオマニアにアピールするオーディオビジュアルLinuxディストリビューション

私は最近、多くの音楽に特化した Linux ディストリビューションの 1 つである Audiovis...

HTML と CSS を書くための 6 つの最も効果的な方法

この記事では、効率を向上させ、時間を節約することを願って、最も効果的な 6 つの方法を紹介します。 ...

MYSQL における char と varchar の違い

CHAR 型と VARCHAR 型は似ていますが、主に格納場所、末尾のスペース、取得方法が異なります...

Nginx のパフォーマンスを向上させるための提案

Web アプリケーションが 1 台のマシンでのみ実行される場合、パフォーマンスを向上させるのは非常に...

CentOS インストール mysql5.7 詳細チュートリアル

この記事では、参考までに、centOSにmysql5.7をインストールする詳細な手順を紹介します。具...

MySQL 8.0.18 ハッシュ結合は左/右結合をサポートしていません 左と右の結合の問題

MySQL 8.0.18 では、インデックスが作成されていないフィールドに適用でき、等価値の関連付け...

Docker-compose は Docker プライベート ウェアハウスのステップを迅速に構築します

docker-compose.ymlを作成し、次の内容を入力します。 バージョン: '3&#...

Nginx プロセス スケジューリングの問題の詳細な説明

Nginx は、マスター プロセス (MasterProcess) と、同じ数のホスト CPU コア...

Element UI を使用してページにページング ナビゲーション バーを追加する方法

必要ページング バーを追加します。これにより、ページにジャンプしたり、ページ番号に従って特定のページ...

CSSをiPhoneのフルスクリーンに適応させる方法

1. メディアクエリ方式 /*iPhone X への適応*/ @media 画面のみ、(デバイス幅:...

MySQL の FIND_IN_SET() と IN の違いを簡単に分析します

以前、あるプロジェクトでMysql FIND_IN_SET関数を使用したことがありますが、非常に便利...