異なる列を持つテーブルのクエリ結果の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つの方法

推薦する

ブラウザの自動更新を実装するReactサンプルコード

目次フロントエンドルーティングとは何ですか?フロントエンドルーティングを実装するにはどうすればいいで...

Windows Server 2008 64ビット MySQL5.6 インストール不要版 設定方法図

1 公式ウェブサイトから MySQL 5.6 バージョンの圧縮パッケージmysql-5.6.36-w...

MYSQL(電話番号、IDカード)データ非感応化の実装

1. データ感度低下の説明日常の開発ニーズでは、データの感度低下が頻繁に発生します。たとえば、ID ...

CSS3アニメーションを使用した簡単な指クリックアニメーションの実装例

この記事では主に、CSS3 アニメーションで簡単な指クリックアニメーションを実装する例を紹介し、皆さ...

イベントバブリング、イベントキャプチャ、イベント委任に基づく詳細な説明

イベントバブリング、イベントキャプチャ、イベント委任JavaScript では、イベント委譲は非常に...

Mybatisの各SQL文の実行時間の統計

背景最近、面接でデータベース トランザクションについてよく質問されます。通常は、@Transacti...

Dell R720 サーバーに Windows Server 2008 R2 をインストールする方法

注: この記事のすべての写真はインターネットから収集されたものであるため、DELL R720 サーバ...

ショッピングカートの計算を実現する js メソッド

この記事の例では、ショッピングカートの計算を実装するためのjsの具体的なコードを参考までに共有してい...

テーブルのネストと境界の結合の問題に対する解決策

【質問】外側のテーブルと内側のテーブルがネストされていて、内側のテーブルと外側のテーブルの両方に境界...

jQueryは画像の強調表示を実現します

ページ上の画像を強調表示することは非常に一般的です。ここでは、jQuery を使用して画像を強調表示...

JavaがMySQL 8.0に接続できない問題の解決策

この記事では、参考までにMySQL 8.0に接続できないJavaの問題をまとめて紹介します。具体的な...

さまざまな MySQL テーブルソートルールのエラーの分析

MySQL が複数のテーブルを結合するときに、次のエラーが報告されます: [Err]1267 – 操...

CentOS での Docker の詳細なインストール チュートリアル

DockerにはCEとEEがあり、CE版はコミュニティ版(無料)、EE版はセキュリティを重視したエン...

HTML と JavaScript を使用してローカル メディア (ビデオとオーディオ) ファイルを再生する方法

まず、セキュリティ上の理由から、JavaScript はローカル リソース ファイルに直接アクセスで...