異なる列を持つテーブルのクエリ結果の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 8 の新機能: 非表示のインデックス

背景インデックスは諸刃の剣です。クエリ速度は向上しますが、DML 操作も遅くなります。結局のところ、...

EDMをHTMLで記述する際の注意点まとめ(メール送信時の一般的な注意点)

フォーマットエンコーディング1. ページの幅は600~800px、長さは1024px以内に設定してく...

3つのDocker Nginxログの処理の詳細な説明

社内の同僚は Nginx ログの標準出力、つまりコンソール経由の処理を必要としているため、まずログを...

SQL Server での exists と except の使用法の概要

目次1. 存在する1.1 説明1.2 例1.3 交差/2017-07-21 2. 除く2.1 説明2...

MySQL データベースにおける高同時実行性の問題を解決する方法

序文スタートアップ企業が最初はモノリシック アプリケーションを主要なアーキテクチャとして使用し、通常...

CocosCreatorプロジェクト構造の仕組みの詳細な説明

目次1. プロジェクトフォルダ構造1. アセットフォルダ2. 図書館3. ローカル設定(ローカル) ...

CSS calc() の数式に関する詳細な理解

数式 calc() は CSS の関数であり、主に数学演算に使用されます。 calc() を使用する...

MySQLはJSON内部フィールドを抽出し、数値としてダンプします

目次背景問題分析1. 属性値はJson形式であり、Json操作関数を使用して処理する必要があります。...

CSSに基づいてマウス入力の方向を決定する

以前、フロントエンド技術グループに所属していたとき、グループのメンバーが面接中に問題に遭遇したと言っ...

MySQL 4 の一般的なマスタースレーブレプリケーションアーキテクチャ

目次1つのマスターと複数のスレーブのレプリケーションアーキテクチャマルチレベルレプリケーションアーキ...

docker-maven-pluginはイメージをパッケージ化し、プライベートウェアハウスにアップロードします。

目次1. docker-maven-pluginの紹介2. 環境とソフトウェアの準備3. デモ例3....

CentOS 7 に Percona Server+MySQL をインストールする

1. 環境の説明(1) CentOS-7-x86_64、カーネルバージョン uname -r は、 ...

Confluence と jira-software を Docker にデプロイする方法

バージョン: セントロス==7.2 jdk==1.8 合流==6.15.4 jira-ソフトウェア=...

シンプルなスネークゲームを実現するネイティブjs

この記事では、スネークゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内容...