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

推薦する

複数のドメイン名に対する Nginx リバース プロキシを使用した HTTP および HTTPS サービスの実装

現在、Nginx は、Web サービスを提供するために、Windows ベースの IIS と Lin...

開発環境にUbuntu 16をインストール後の初期設定

オフィスでは、Linux 開発環境として Ubuntu システムが必要です。現在、Ubuntu 16...

ミニプログラムカスタムコンポーネントの非効率的なグローバルスタイルの解決策

目次長すぎて読めないコンポーネントスタイルの分離デモテスト優先度ページの分離構成参考文献ネイティブ ...

vue+element-uiはヘッドナビゲーションバーコンポーネントを実装します

この記事では、vue+element-uiでヘッドナビゲーションバーコンポーネントを実装するための具...

Net Core実装プロセス分析のDoc​​kerインストールと展開

1. Dockerのインストールと設定 #CentOS をインストールし、Docker パッケージを...

JS ES6 非同期ソリューション

目次最初にコールバック関数を使用するes6 非同期処理モデルこの非同期モデルに合わせたAPI: pr...

Vue ボタンの権限制御の導入

目次1. 手順1. ボタンの権限を定義する2. ストアを定義する3. 権限指示を作成する4. パーミ...

Vueは不規則なスクリーンショットを実装する

目次SVG による画像キャプチャCSS部分エフェクト画像表示ソースコードアドレスこれまで見てきたもの...

Bootstrap Webページレイアウトグリッドの実装

目次1. Bootstrapグリッドシステムの仕組み1.1 12グリッドシステム1.2 Bootst...

CSS の clip-path プロパティの使用方法の詳細な説明

クリップパスの使用ポリゴン値は複数の座標点で構成されます。最初の値は x 方向、2 番目の値は y ...

HTMLとは何ですか?

HTML 開発の歴史: HTML は英語で Hypertext Marked Language の...

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

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

共有サイドバーを実装するためのネイティブJS

この記事では、ネイティブ JS で実装された共有サイドバーを紹介します。効果は次のとおりです。 以下...

JS で列挙をシミュレートする方法

序文現在の JavaScript には列挙の概念がありません。一部のシナリオでは、列挙を使用するとデ...