MySQLのジョイントクエリについて詳しく説明します

MySQLのジョイントクエリについて詳しく説明します

ユニオンクエリ

Union は、2 つ以上の SELECT ステートメントによってクエリされたテーブルを結合し、テーブル内の重複行を排除できます。

選択ステートメントには、同じデータ型の同じ数の列が必要です。

1. 中国の各省のIDと名前を照会する

T_ProvinceからProID、ProNameを選択

2. 湖南省のすべての地級市のIDと名称

T_CityからCityID、CityNameを選択
ここで、ProID = (
    ProName="湖南省" の T_Province から ProID を選択します。
);

3. 結合して結合する

T_ProvinceからProID、ProNameを選択
連合
T_CityからCityID、CityNameを選択
ここで、ProID = (
    ProName="湖南省" の T_Province から ProID を選択します。
);

これにより、2 つのクエリ結果が結合されます。

UNION の結合セット内の列名は、常に UNION の最初の SELECT ステートメント内の列名と同じになります。

ユニオンクエリ ユニオンオール

T_ProvinceからProID、ProNameを選択
すべて結合
T_CityからCityID、CityNameを選択
ここで、ProID = (
    ProName="湖南省" の T_Province から ProID を選択します。
);

union all を使用する場合、重複行は削除されません。

結合クエリの内部結合

1.湖北省に地級市がいくつあるか確認する

ユニオンクエリは不要です:

T_Cityからcount(CityID)を選択します
ProID = (T_Province から ProID を選択し、ProName="湖北省")

ProIDを使用して2つのテーブルを結合する

ProName、CityNameから選択(
    T_City が T_Province に参加
    T_City.ProID = T_Province.ProID の場合
)
ProName="湖北省"

2.各省の県級市の数を数え、省名と県級市の数を出力する

T_City.ProID、ProName、count(CityID) を cc として選択します(
    T_City が T_Province に参加
    T_City.ProID = T_Province.ProID の場合
)
T_City.ProID によるグループ化
cc 降順で並べ替え;

選択ステートメントで出力される ProID は、T_City または T_Province のいずれかである必要があります。それ以外の場合はエラーが報告されます。

2 つのテーブルを結合するには、共通の「言語」が必要です (列名は必ずしも同じである必要はありません)。

テーブルに別名を付けることができます。T_City テーブルの別名を tc に設定し、T_Province の別名を tp に設定します。

tc.ProID、ProName、count(CityID) を cc として選択します(
    T_City tc 参加 T_Province tp
    T_City.ProID = T_Province.ProID の場合
)
tc.ProID によるグループ化
cc 降順で並べ替え;

3. 20以上の地区と郡を持つ都市を検索し、都市名と地区と郡の数を出力する

CityName、count(DisName)、disCount を ( から選択
    T_City tc 参加 T_District td
    tc.CityID = td.CityID の場合
)
CityName でグループ化
disCount > 20 である;

3 つのテーブルの結合クエリ

1. 最も多くの地区と郡を持つ上位 3 つの都市はどの州のどの都市ですか? クエリ結果には、州名、都市名、地区と郡の数が含まれます。

tp.ProName、tcd.CityName、tcd.ciを選択します
(
ProID、CityName、count(ID) ci を (T_City tc を T_District td に結合し、tc.CityID = td.CityID) から選択します。 
 
   tc.CityID でグループ化
ci 降順で並べ替え
制限3
)tcd
T_Province tp を tcd.ProID = tp.ProID に参加させます。

結合クエリの左結合と右結合

内部結合は、左側のテーブルと右側のテーブルの共通部分に基づいています。

左結合は、左テーブルと右テーブルの共通部分と、左テーブルの固有部分に基づいています。

右結合は、左テーブルと右テーブルの共通部分と右テーブルの固有部分に基づきます。

すべての州とその都市の情報を検索する

から*を選択(
T_Province tp 参加 T_City tc
tp.ProID = tc.ProID の場合
);

すべての州とその都市、および都市のない州を照会します

から*を選択(
T_Province tp 左結合 T_City tc
tp.ProID = tc.ProID の場合
);

すべての州とその都市情報、および州を除いた都市情報を照会します。

から*を選択(
T_Province tp 右結合 T_City tc
tp.ProID = tc.ProID の場合
);

要約する

これで、MySQL ジョイント クエリに関するこの記事は終了です。MySQL ジョイント クエリに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL初心者はグループ化や集計クエリの煩わしさから解放されます
  • MySQLの共同クエリ最適化メカニズムの詳細な説明
  • MySQLの結合クエリ、ユニオンクエリ、サブクエリの原理と使用例の詳細な説明
  • MySQL マルチテーブル共同クエリ操作例の分析
  • MySQL データベースの集計クエリと結合クエリ操作

<<:  Vue で debouce の手ぶれ補正機能を使用する方法

>>:  HTML 要素に注釈を付けるときにクラスと ID のどちらが優れているかを分析する

推薦する

Linux で ARM 開発ボード用のファイルシステムを作成する

1. Busyboxのソースコードをオンラインでダウンロードしてください。コンパイル方法については、...

一般的なMysql DDL操作の概要

図書館管理ライブラリを作成する データベースを作成します [存在しない場合] ライブラリ名;ライブラ...

Dockerコマンドは一般ユーザーが実行できるように実装されている

dockerをインストールすると、通常はdockerユーザーグループが作成されます。ステップ2: 現...

JavaScript のドキュメント オブジェクト モデル (DOM)

目次1. DOMとは何か2. 要素を選択する3. getElementById() 4. クエリセレ...

MySQL における一般的な高度な SQL ステートメント

MySQL 高度な SQL ステートメント kgc を使用します。 テーブルlocation(Reg...

js 加算、減算、乗算、除算の正確な計算方法のサンプルコード

序文コンピュータの数値は浮動小数点であるため、計算プロセス中に取得されるデータは通常正確ではなく、そ...

Nginx キャッシュ ファイルと動的ファイルの自動バランス設定スクリプト

nginx Nginx (エンジン x) は、高性能な HTTP およびリバース プロキシ サーバー...

Uniappの小規模プログラム開発経験

1. 新しいUIプロジェクトを作成するまず、私たちの UI は ColorUI に基づいています。C...

MySQLデータベーストリガーの詳細な説明

目次1 はじめに2 トリガーの紹介3 トリガーを作成する4 トリガーを表示5. トリガーの削除6 結...

Flex プログラム Firefox で中国語を入力すると文字化けするバグ

Firefox の下位バージョンでは中国語の文字を入力できず、上位バージョンでは文字化けした文字が表...

MySQL 継続的集計の原理と使用法の分析

この記事では、例を使用して、MySQL の継続的な集計の原理と使用方法を説明します。ご参考までに、詳...

Vue バインディング オブジェクト、配列データを動的にレンダリングできないケースの詳細な説明

プロジェクトシナリオ: Dark Horse Vueプロジェクト管理の実践、製品分類の取得、拡張バー...

Vue の親子コンポーネントの値転送と一方向データフローの問題の詳細な説明

目次序文1. 親コンポーネントが子コンポーネントに値を渡す2. サブコンポーネントのprops型制約...

Hyper-V インストール CentOS 8 の問題の分析

CentOS 8 がリリースされてから随分経ちました。Linux 仮想マシンをいじっている人間として...

HTML マーキータグの使用例

このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルのみをサポートしています。そのため、...