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 を使用して特定のインターフェース (URL) をブロックする方法

1. はじめに場合によっては、Web プラットフォームがオンラインになった後、サービス インターフェ...

MySQLデータのグループ化の詳細な説明

グループを作成グループ化は、SELECT ステートメントの GROUP BY 句で設定されます。例:...

CSSマスクのフルスクリーン中央揃えを実装する方法

具体的なコードは次のとおりです。 <スタイル> #トーストローダーフルスクリーン{ 高さ...

将来的に人気のあるウェブサイトのナビゲーションの方向

<br />今は情報爆発の時代であるだけでなく、サービス爆発の時代でもあります。それはす...

node.js で Web サーバーを作成する手順の詳細な説明

序文node.js でサーバーを作成するのは非常に簡単です。小さいながらも完全な Web サーバーを...

Nginx でバージョン番号を隠す方法

Nginx はバージョン番号を非表示にする実稼働環境では、セキュリティ上の脆弱性の漏洩を避けるために...

Docker でタイムゾーンの問題に対処する方法

背景ここ 2 日間 Docker を使用していたところ、コンテナの起動後に date -R の出力タ...

vue-router のハッシュモードと履歴モードの違い

vue-routerには2つのモードがありますハッシュモード履歴モード1. シングルページアプリケー...

jsを使用してサーバーに写真をアップロードする

この記事の例では、参考のために画像をサーバーにアップロードするためのjsの具体的なコードを共有してい...

MySQL のスローログオンラインの問題と最適化ソリューション

MySQL スロー ログは、MySQL DBA やその他の開発および運用担当者が細心の注意を払う必要...

Mysql InnoDBとMyISAMの違いの分析

MySQL は、myisam、innodb、memory、archive、example など、多く...

DockerコンテナのIPアドレスを表示する方法

私はずっとDockerにはIPアドレスがないと思っていました。実はDockerのネットワークテンプレ...

HTMLはマーキーを使用してテキストを左右にスクロールします

コードをコピーコードは次のとおりです。 <本文> //マーキーの助けを借りて<MA...

Dockerイメージのローカル移行の実装

最近 Docker を勉強しているのですが、よく問題に遭遇します。Docker イメージをダウンロー...

Vueでスケルトンスクリーンを実装する例

目次スケルトンスクリーンの使用Vueアーキテクチャスケルトンスクリーンアイデアの概要抽象コンポーネン...