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

推薦する

MySQL5.7 mysqldump バックアップとリカバリの実装

MySQL バックアップコールドバックアップ:停止服務進行備份,即停止數據庫的寫入ホットバックアップ...

MySQL SQL ステートメントのパフォーマンス チューニングの簡単な例

MySQL SQL ステートメントのパフォーマンス チューニングの簡単な例サーバー開発を行う際には、...

JSアルバム画像の揺れと拡大表示効果のサンプルコード

前回の記事では、JS を使って簡単な揺れ効果を実現する方法を紹介しました。ご興味があればクリックして...

MySQL でコミットされていないトランザクションを見つけるための SQL の例の簡単な分析

以前、「MySQL でコミットされていないトランザクション情報を検索する方法」というタイトルのブログ...

JavaScript 文字列操作の 4 つの実用的なヒント

目次序文1. 文字列を分割する2. JSONのフォーマットと解析3. 複数行の文字列と埋め込み式4....

MySQL クエリ ステートメントのプロセスと EXPLAIN ステートメントの基本概念とその最適化

ウェブサイトやサービスのパフォーマンスは、データベースの設計(適切な言語開発フレームワークを選択した...

ウェブページ作成のヒントのまとめ

序文この記事は主に、日常の Web ページ制作で遭遇する問題解決スキルの一部をまとめ、皆さんの参考と...

Vue3 を使用してポップアップ コンポーネントをカプセル化するのは簡単ですか?

目次最初に要約: 🌲🌲 序文: 🍬🍬公開🍬🍬 🍬🍬グローバル🍬🍬 🍬🍬ボールボックス🍬🍬 🎉🎉🎉結論...

MySQL でデータ復旧に binlog を使用する方法

序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...

jsオブジェクトの読み取り速度の詳細な例

1. リテラルとローカル変数へのアクセスは最も高速ですが、配列要素とオブジェクト メンバーへのアクセ...

MySql5.x を MySql8.x にアップグレードする方法と手順

MySQL 5.x と MySQL 8.0.X のいくつかの違いapplication.proper...

JS の 6 つの継承方法とその長所と短所

目次序文プロトタイプチェーン継承コンストラクタの継承組み合わせ継承(プロトタイプチェーン継承とコンス...

Vue双方向バインディングの詳細な説明

目次1. 双方向バインディング2. 他のタグを選択した場合にも同じ結果になりますか? 答えはもちろん...

a href=# と a href=javascript:void(0) の違いの詳細な説明

a href="#"> リンクをクリックすると、ページがページ上部までスク...

IIS7~IIS8.5 サーバープロトコルヘッダーの削除または変更

要件: IIS 7、7.5、8.0、8.5、および ASP.NET で HTTP 応答ヘッダーを削除...