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 のどちらが優れているかを分析する

推薦する

Win10 MySQLでCSVをエクスポートする2つの方法

Win10 で csv をエクスポートする方法は 2 つあります。1 つ目はツールを使用することです...

高さ:100% が機能しないのはなぜですか?

高さ:100% が機能しないのはなぜですか?この知識は不人気ではありませんが、使用する際には混乱する...

Vue+Vantはトップ検索バーを実装します

この記事では、参考までに、Vue+Vant のトップ検索バーを実装するための具体的なコードを紹介しま...

jQueryはキャンバスタグを使用して検証コードを描画します

<canvas> 要素は、クライアント側のベクター グラフィックス用に設計されています。...

HTML 挿入画像の例 (HTML 追加画像)

HTML に画像を挿入するには、画像を表示するための HTML タグが必要です。これは、img タ...

XHTMLコードの一般的なアプリケーション問題をまとめる

時間が経つにつれて、多くの人が XHTML の使い方を知らないことに気づきました。普通の初心者だけで...

HTML ページの先頭に戻るいくつかの実装の概要

最近、ウェブサイトを開発する際にトップに戻るボタンを作成する必要がありますが、私は主にバックエンドの...

イメージのアップロードとダウンロードに docker をプロキシするためのプライベート ライブラリとして nexus を使用する

1. Nexusの設定1. Dockerプロキシを作成する外部ネットワーク ウェアハウスからローカル...

VMware + Ubuntu18.04 による Hadoop クラスタ環境の構築に関するグラフィック チュートリアル

目次序文VMware クローン仮想マシン (準備、3 台の仮想マシンのクローン、1 台のマスター、2...

包括的なウェブサイト評価ソリューション

<br />「XXXのウェブサイトを見てみませんか?」といった質問をされることもあります...

jQueryはクッキーを操作する

コードをコピーコードは次のとおりです。 jQuery.cookie = 関数(名前、値、オプション)...

HTML印刷関連の操作と実装の詳細な説明

原則的にはwindow.print()メソッドを呼び出すことですが、このメソッドは現在のページ全体を...

JavaScriptは両端キューを実装する

この記事の例では、両端キューを実装するためのJavaScriptの具体的なコードを参考までに共有して...

CSS のマージンの崩壊問題を解決する方法

まず、マージン崩壊が発生する 3 つの状況を見てみましょう。 1. 隣接する 2 つのブロックレベル...

例を通してMySQLパーティションテーブルの原理と一般的な操作を学びます

1. パーティションテーブルの意味パーティション テーブル定義は、任意のサイズに設定できるルールに従...