MySQL マルチテーブル結合クエリの詳細な説明

MySQL マルチテーブル結合クエリの詳細な説明

複数テーブル結合クエリ

テーブル間の接続は内部接続と外部接続に分かれています

  • 内部結合: 2つのテーブルで一致するレコードのみを選択します
  • 外部結合: 2 つのテーブル内の一致するレコードと一致しないレコードの両方が含まれます。外部結合は、左外部結合 (左結合) と右外部結合 (右結合) に分けられます。

内部結合

まず、2つのテーブルを用意します

学生テーブル

ここに画像の説明を挿入

スコア表

ここに画像の説明を挿入

内部結合: 各テーブルで条件を満たす共通レコードを検索します。学生テーブルで学生の名前とスコアを照会します。

最初の書き方:whereのみを使用する

学生 a、スコア b から a.s_name、b.s_score を選択します。ここで、a.s_id = b.s_id です。

2 番目の書き方: join ... on ...

学生Aからa.s_name、b.s_scoreを選択し、a.s_id = b.s_idでスコアbを結合します。

3 番目の書き方: inner join … on…

学生Aからa.s_name、b.s_scoreを選択し、a.s_id = b.s_idでスコアbを内部結合します。

ここに画像の説明を挿入

左結合

左結合: 左のテーブルのレコードに従って、接続された右のテーブルで条件を満たすレコードを検索して一致させます。左のテーブルに一致するレコードが見つからない場合は、null を使用してそれらを表します。

最初の書き方: 左結合…オン…

学生 a の左側から a.s_name、b.s_score を選択し、スコア b を a.s_id = b.s_id に結合します。

2 番目の書き方: left outer join … on …

学生 a から a.s_name、b.s_score を選択し、a.s_id = b.s_id でスコア b を左外部結合します。

ここに画像の説明を挿入

右結合

**右結合: **右側のテーブルのレコードに従って、接続された左側のテーブルで条件を満たすレコードを検索して一致させます。一致するものが見つからない場合は、null で表されます。

最初の書き方: … を右結合して … にします。

学生aからa.s_name、b.s_scoreを選択し、スコアbをa.s_id = b.s_idに右結合します。

2 番目の書き方: 右外部結合 … 上 …

学生aからa.s_name、b.s_scoreを選択し、スコアbをa.s_id = b.s_idで右外部結合します。

ここに画像の説明を挿入

サブクエリ

サブクエリ: 複数テーブル結合クエリを実装する方法です。別の選択ステートメントが、選択ステートメントの from 句または where 句にネストされます。外側の選択クエリ ステートメントがメイン クエリになります。つまり、WHERE または FORM 内のクエリ ステートメントはサブクエリと呼ばれます。

WHERE句のサブクエリ: サブクエリによって返される値は、メインクエリのクエリ条件として使用されます。

FROM 句のサブクエリ: サブクエリは仮想テーブルを返し、メインクエリは一時テーブルから条件を満たす条件を検索します。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL の結合クエリとサブクエリの問題
  • どのような種類の MYSQL 接続クエリを知っていますか?
  • MySQL接続クエリの原理と応用
  • MySQL 結合クエリ構文と例
  • MySQLの結合クエリ、ユニオンクエリ、サブクエリの原理と使用例の詳細な説明
  • Mysql 自己結合クエリ例の詳細な説明
  • MySQL マルチテーブル結合クエリ例の説明
  • MySQL接続クエリの詳細な説明

<<:  Linux の操作とメンテナンスの基本 httpd 静的 Web ページ チュートリアル

>>:  CSS3を使用してオンラインライブ放送に似たキューアニメーションを実装する方法

推薦する

docker エントリポイントファイルの詳細な説明

Dockerfile を作成するときは、コンテナが起動する前に初期化構成やカスタム構成を実行するため...

Docker に nginx をインストールし、https 経由でアクセスを構成する方法

1. 最新のnginx dockerイメージをダウンロードする $ docker pull ngin...

MySQLが間違ったインデックスを選択する理由と解決策

MySQL では、テーブルに複数のインデックスを指定できますが、ステートメントの実行時に、使用するイ...

CSS 画像アニメーション効果のサンプルコード(フォトフレーム)

この記事では、CSS 画像アニメーション効果(フォトフレーム)のサンプルコードを紹介し、皆さんと共有...

Windows10のマウスを模倣して境界線を光らせる効果を実現するCSSの詳細解説

最新の Windows 10 アップデートをインストールした後、システム UI の詳細な効果が顕著に...

Linuxでのソフトウェア(ライブラリ)の更新コマンドの詳しい説明

Ubuntu サーバーにパッケージをインストールする場合、sudo apt-get install ...

VUE でタブページを切り替える 4 つの方法

目次1. 静的実装方法: 2. 第2のシミュレーション動的方法3. 3番目の動的データ方式4. 動的...

メタ情報に基づいて時間指定のページ更新またはリダイレクトを実装する

メタを使用して、ページの時間指定更新またはジャンプを実装します。 XML/HTML コードコンテンツ...

nginx ウェブサイト サービスのアンチホットリンクを設定する方法 (推奨)

1. ホットリンクの原則1.1 Webページの準備Web ソース ホスト (192.168.153...

CentOS 6.x のインストール時に発生するエラー「ディスク sda に BIOS RAID メタデータが含まれています」の解決方法

今日、CentOS6.2 をインストールしていたところ、ハード ドライブの検出段階を通過できませんで...

Linux で推奨される 9 つの優れたコード比較ツールの概要

コードを書くとき、2 つのファイル間の違い、または同じファイルの異なるバージョン間の違いを知る必要が...

中国語でのNginx設定パラメータの詳細な説明(負荷分散とリバースプロキシ)

PS: 最近、nginx を詳細に紹介している <<High-Performance ...

WeChatミニプログラムQRコード生成ツール weapp-qrcode 詳細説明

WeChat ミニプログラム - QR コード ジェネレーターダウンロード: weapp-qrcod...

jsネイティブ構文プロトタイプ、__proto__、コンストラクタの徹底的な理解

目次1 はじめに2 前提条件2.1 データ型2.2 それが自身のプロパティであるかどうかを判断する ...