異なる列を持つテーブルのクエリ結果のSQLマージ操作

異なる列を持つテーブルのクエリ結果のSQLマージ操作

2 つの異なるテーブルをクエリするには、結果をマージする必要があります。

たとえば、table1 の列は id、user_id、type_id、pro_id です。

table2の列はそれぞれ次の図に示すようにid、user_id、collect_idです。

表1:

表2:

2つのテーブルのクエリ結果をマージするクエリステートメントは

user_id = 527 の table1 から collect_id として *、null を選択します。
連合
user_id = 527 の場合、table2 から id、user_id、null を type_id として、null を pro_id として、collect_id として選択します。

結果は次のとおりです。

実際には、この列がないテーブルに、対応する列を追加します。例では、collect_id が table1 に追加されます。

type_id と pro_id を table2 に追加します。

追加知識: SQL 結果セットと、union all を使用して異なるテーブルの列を結合する

結果セットはunion allで結合され、異なるテーブルの列はjoinで結合されます。

選択
「モジュール名」、
「イベントコード」、
「クリック数」、
「使用時間(単位:分)」
から

(選択 
T.fun_name を「モジュール名」として、
T.event_code を「イベントコード」として、
SUM(click_records) を「クリック数」として計算
から 
(SELECT m.* FROM default.daily_new_clientrpt_master m WHERE event_id in ( SELECT max(event_id) AS "event" from default.daily_new_clientrpt_master group by user_name,fun_code ORDER BY "event" DESC ) ) T where day = today() GROUP BY "module name" ,"event code") T5
参加する
(
選択 
T.fun_name を「モジュール名」として、
T.event_code を「イベントコード」として、
round(sum(stay_time)/60000,0) を「利用時間(単位:分)」として計算します。
から 
(SELECT m.* FROM default.daily_new_clientrpt_master m WHERE event_id in 
 ( 
 「イベント」を選択(
 default.daily_new_clientrpt_master から、user_name、fun_code でグループをグループ化し、max(event_id) を "event" として、max(stay_time) を "event1" として選択します。ORDER BY "event1" DESC) )
) 
 T where day = today() AND like(event_code,'%10000') GROUP BY "モジュール名" ,"イベントコード"
) T6 ON T5."モジュール名"=T6."モジュール名" AND T5."イベント コード"=T6."イベント コード"

異なるテーブルのクエリ結果の上記のSQLマージ操作は、エディターがあなたと共有するすべての内容です。参考になれば幸いです。また、123WORDPRESS.COMをサポートしていただければ幸いです。

以下もご興味があるかもしれません:
  • Mysql の 2 つのテーブル間の結合クエリの 4 つの状況の概要
  • SQL Server がオブジェクト文字列を一意の識別子に変換する際の保存エラーの問題を解決する
  • SQL Server の自動増分 ID - シリアル番号を自動的に増やすフィールド操作
  • SQL Server での ID の使用に関する詳細な説明
  • MySQL 5.7.31 64 ビット無料インストール版チュートリアル図
  • SqlServerは指定された数値演算に従って連続した数値を生成します

<<:  Vue の computed と watch の違いを分析する

>>:  Dockerコンテナ間で通信する3つの方法

推薦する

MySQLトリガーの概念、原理、使用法の詳細な説明

この記事では、例を使用して、MySQL トリガーの概念、原則、および使用方法を説明します。ご参考まで...

Vue Element フロントエンドアプリケーション開発開発環境の準備

目次概要1. 必要なソフトウェア環境を開発する1) VSコードのインストール2) ノード開発環境をイ...

MySQL 5.7.16 無料インストール版のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 5.7.16のインストールと設定方法を記録します。具体的な内容は以下のとおり...

史上最もシンプルな MySQL データのバックアップと復元のチュートリアル (パート 1) (パート 35)

データのバックアップと復元に関する最初の記事を皆さんに共有します。具体的な内容は次のとおりです。基本...

HTML で vue-router を使用するサンプル コード

vue と vue-router の紹介 <script src="https://...

Vue2.0/3.0 での provide と inject の使用例

目次1. provide/inject の用途は何ですか? 2. provide/injectの使い...

Mysql 中国語ソートルールの説明

MySQL を使用する際、フィールドをソートしたりクエリしたりすることがよくあります。通常は、中国語...

CSS マージンの重複と解決策の探索の詳細な説明

最近、CSS 関連の知識ポイントをいくつか見直し、CSS における典型的なマージンの重なりの問題を整...

Docker が PostgreSQL を起動するときに複数のデータベースを作成するためのソリューション

1 はじめに「DockerでPostgreSQLを起動する方法といくつかの接続ツールのおすすめ」の記...

表のセル間隔とセルパディングの違いの詳細な説明

テーブルとは何ですか?セルセルで構成されています。表では、<td> の数は、<tr...

docker compose idea CreateProcess error=2 システムは指定されたファイルを見つけることができません

Docker の作成Compose の紹介Compose は、マルチコンテナ Docker アプリケ...

Vueモバイル端末が指のスライド効果を実現

この記事の例では、Vueモバイル端末で指のスライド効果を実現するための具体的なコードを紹介します。具...

MySQLストレージフィールドタイプのクエリ効率についての簡単な理解

検索パフォーマンスは最速から最遅まで次のとおりです (私が聞いたところによると)。 1 番目: ti...

Windows に MySQL 5.7.18 の解凍バージョンをインストールするチュートリアル

1. インストールプロセスMySQL バージョン: 5.7.18 1. my.ini ファイル(簡易...

ネイティブ JavaScript メッセージボード

この記事では、参考までにメッセージボードを実装するためのJavaScriptの具体的なコードを紹介し...