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 キャンバス

推薦する

Nginxの仕組みの詳細な説明

Nginxの仕組みNginx はコアとモジュールで構成されています。 Nginx 自体は実際にはほと...

HTMLテーブルの詳細な説明

機能: データ表示、テーブルアプリケーションシナリオ。 <table> テーブル<...

フロントエンド開発一般マニュアル(ツール、Webサイト、経験などを含む)

今日は何もすることがなかったので、いくつかのツール(オンラインとクライアント)、よく使用する URL...

React リストバーとショッピングカートコンポーネントの使用の詳細な説明

この記事では、Reactリストバーとショッピングカートコンポーネントの具体的なコードを参考までに紹介...

HTML 5 プレビュー

<br />オリジナル: http://www.alistapart.com/artic...

innerHTML を理解する

<br />関連記事: innerHTML HTML DOM insertRow() メ...

25 div+css プログラミングのヒントとコツ

1. ul タグには、Mozilla ではデフォルトでパディング値がありますが、IE ではマージン値...

Win10にmysql8.0.15 winx64をインストールしてサーバーに接続する際に問題が発生しました

1. mysql-8.0.15をダウンロード、インストール、設定する1. 公式サイト (https:...

vue3 を使用したジグソーパズルゲームのリファクタリングの例

序文プロジェクト内のパズルゲーム(デジタル華容路とも呼ばれる)を再構築するのに 2 日かかりました。...

Webフロントエンド開発コース Webフロントエンド開発ツールとは

インターネット技術の発展に伴い、ユーザーはますます Web ページに依存するようになり、Web フロ...

Windows はリモート デスクトップが長時間自動的に切断されるのを防ぎます

Windows リモート デスクトップを使用してサーバーに接続したことがある人なら、リモート デスク...

Docker共通コマンドの詳しい解説 Study03

目次1. ヘルプコマンド2. ミラーコマンド3. コンテナコマンド1. ヘルプコマンド1. 現在のD...

MySQL Server 8.0.13.0 インストールチュートリアル(画像とテキスト付き)

MySQL 6.1.3 をベースにした 8.0.13 をインストールします。 MySQL 8.0....