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を使用してオンラインライブ放送に似たキューアニメーションを実装する方法

推薦する

TSオブジェクトのスプレッド演算子とレスト演算子の詳細な説明

目次概要オブジェクトの残り属性オブジェクトの拡張プロパティオブジェクトの浅いコピーを作成するkeyo...

Linux での VMWare15.5 のインストールに関するチュートリアル

Linux に VMWare をインストールするには、公式 Web サイト https://www....

MySQLのインデックス

序文早速本題に入りましょう。これからお話しするのは次のマインドマップです。まずは印象をつかんでくださ...

Windows (コミュニティ エディション) に MySQL 8.0.18 をインストールするためのチュートリアル

この記事では、Windows で MySQL をインストールする方法について簡単に説明します。他にご...

Linux (Centos7) での redis5 クラスターの構築と使用方法の詳細な説明

目次1. 簡単な説明2. クラスターを作成する手順2.1. ディレクトリを作成する2.2. ソースコ...

Docker execは複数のコマンドを実行します

docker exec コマンドは、実行中のコンテナ内でコマンドを実行できます。 docker ex...

Mac で MySQL 8.0.22 のパスワードを取得する方法

Mac 最新バージョンの MySQL 8.0.22 パスワード回復問題の説明:昨日、突然、Macで最...

フローティング要素が親要素の高さを崩す原因と解決策の詳細な説明

フローティング要素は、親要素の高さを縮小します。要素を float float:left/right...

MySQL パラメータ関連の概念とクエリ変更方法

序文:以前の記事では、特定のパラメータの機能についてよく紹介してきました。しかし、MySQL パラメ...

CentOS の Nginx 公式 Yum ソースの設定を詳しく解説

私はプロジェクトの展開にAlibaba Cloudから購入したCentOSを使用しています。最近、プ...

JavaScript で配列の変更を監視する方法

序文以前、defineProperty を紹介したとき、オブジェクトの変更のみを監視でき、配列の変更...

ウェブデザインにおけるテキスト入力ボックスのパラメータの説明

<br />一般的なゲストブック、フォーラムなどでは、テキスト入力ボックスが使われていま...

HTML要素のID属性とName属性の違い

今日、私は <a href="#13"></a> につい...

MySQL データベースの必須条件クエリ ステートメント

目次1. 基本的な文法2. 条件式によるフィルタリング3. 論理式によるフィルタリング4. あいまい...

CSS の読み込みによってブロックが発生しますか?

おそらく誰もが js の実行によって DOM ツリーの解析とレンダリングがブロックされることを知って...