MySQL 結合クエリの原則の知識ポイント

MySQL 結合クエリの原則の知識ポイント

MySQL 結合クエリ

1. 基本概念

2 つのテーブルの各行をペアで水平に接続して、すべての行の結果を取得します。

前提:

表Aにはn1行とm1列があります。

表 B には n2 行と m2 列があります。

テーブル A とテーブル B が「接続」されると、次のようになります。

n1*n2行;

m1+m2列。

2. 接続後の結果は次のようになります。

3. 結合クエリの基本形式: テーブル 1 から [結合方法] テーブル 2 を結合 [結合条件] 結合クエリの基本形式: テーブル 1 から [結合方法] テーブル 2 を結合 [結合条件]

1. 接続クエリの分類

クロスコネクト

実際、これは接続の基本概念に従って 2 つのテーブルを接続した後に取得される「すべてのデータ」であり、「フィルタリング」の結果は含まれません。フィルタリングは接続条件を指します。

つまり、クロス結合は無条件の「すべてを結合」であり、デカルト積とも呼ばれます。

クロス結合は、データを結合した後、各データ行の意味が「失われる」可能性があるため、通常は実用的な価値がありません。

形状:

テーブル1から[クロス]テーブル2を結合します。

または:

表1、表2より;

内部結合

形状:

table1 [内部] から table2 を table1.field1 = table2.field2 で結合します。

意味:

「クロス接続」の結果、設定された接続条件(on 以降の条件)を満たす行のデータを取得します。

クロス結合では、次のように「意味のないデータ」が含まれることがよくあります。

2. 内部接続の結果を確認します。

3. 結果は次のとおりです。

4. 内部結合は、実際にはクロス結合のデータ結果から「意味のある」データ行を見つけることであることがわかります。クロス結合では、一部のデータは意味を持ちますが、一部のデータは意味を持ちません (エラーのあるデータ)。

ただし、以下の点にご注意ください。

  • 1. この接続条件は任意に設定できるものではなく、テーブル間の実際の関係に応じて設定する必要があります。通常、2 つのテーブル間の「主キーと外部キーの関係」を持つ 2 つのフィールドの値が等しいという関係になります。
  • 2. 接続クエリには、前に学習した「外部キー関係」との固有の論理的一貫性があることがわかります。
  • 3. ただし、内部結合を行う場合、2 つのテーブルに外部キー関係が「必ず」ある必要はありません。実用的な観点から、外部キー関係 (データ関係) があることを理解し、クエリ中に内部結合を使用すると、それらの関係が確立されるだけです。内部結合は、実際にはクロス結合のデータ結果内で「意味のある」データ行を見つけることであることがわかります。クロス結合では、一部のデータは意味を持ちますが、一部のデータは意味を持ちません (エラーのあるデータ)。

以下もご興味があるかもしれません:
  • MySQLの自己接続と結合の詳細な理解
  • MySQL の複数の左結合クエリの使用状況の分析
  • MySQL の最適化: サブクエリの代わりに結合を使用する
  • MySQL クエリの最適化: 結合クエリのソート制限の概要 (結合、順序、制限ステートメント)
  • MySQL で JOIN ステートメントを使用して接続操作を実行する詳細なチュートリアル
  • MySQL 結合クエリ構文と例
  • MySQLでよく使用されるいくつかの結合接続方法の概要

<<:  CentOS7 インストール GUI インターフェースとリモート接続の実装

>>:  雨滴効果を実現する JavaScript キャンバス

推薦する

MySQL 8.0.2 オフラインインストールと設定方法のグラフィックチュートリアル

MySQL_8.0.2のオフラインインストール方法は参考までに。具体的な内容は以下のとおりです。次の...

メタタグを簡単に説明すると

META タグは、一般的に タグと呼ばれ、HTML Web ページのソース コード内の重要な HTM...

Vueは画像切り替え効果を実現

この記事の例では、画像切り替え効果を実現するためのVueの具体的なコードを参考までに共有しています。...

Mysql sql スロークエリ監視スクリプトコード例

1. my.cnfを変更する #全体的な効果としては、グローバルがオンになっている場合はテーブルとロ...

MySQLでorder byを使用せずにランキングを実装する3つの方法のまとめ

ビジネスを想定: 2位の従業員の給与情報を見るデータベースを作成する emps が存在する場合はデー...

mysql の not equal to null と equal to null の書き方の詳細説明

1. テーブル構造 2. 表データ 3. クエリのteacher_nameフィールドは空にすることは...

JavaScript の Strict モードの詳細な説明

目次導入厳密モードの使用厳格モードの新機能例外を強制的にスローする変数の使用を簡素化する議論を単純化...

React の 3 つの主要属性における Ref の使用に関する詳細な説明

目次クラスコンポーネント機能コンポーネントインタビューのよくある質問: React における ref...

1時間で学ぶMySQLの基礎

目次MySQL を使い始めるMySQL 管理6. MySQL サーバーを起動および停止します。 7....

Windows/Mac で Docker を使用して MySQL (utf8 を含む) をインストールする

目次1. MacへのDockerのインストール2. Win 10 システムでの Docker のイン...

2時間のDocker入門チュートリアル

目次1.0 はじめに2.0 Dockerのインストール3.0基本的なDockerコマンド4.0 Do...

CSS を使用して HTML フォーム コントロールを美しくする詳細な例 (フォームの美化)

1. HTML送信ボタンと下部ボタンの基本構文構造1. HTML送信ボタン入力タグで type=&...

静的リソースファイルのアクセスログをフィルタリングするNginxの実装

乱雑なログ日常的に使用される Nginx は、静的リソース サーバーとリバース プロキシ サーバーの...

HTML で水平ナビゲーション構造を設定する方法

この記事では、主にリスト構造を使用して水平ナビゲーション構造を設定する 2 つの方法を紹介します。こ...

ファイル共有サーバーを構築するための samba + OPENldap の詳細な説明

ここでは、samba (ファイル共有サービス) v4.9.1 + OPENldap (バックエンド ...