1. 程式人生 > >MySql 從一張表查詢的資料賦值給另外一張表的欄位(MySQL Update Query using a left join)

MySql 從一張表查詢的資料賦值給另外一張表的欄位(MySQL Update Query using a left join)

舉慄:
我們的使用者積分出現重複資料,然後我們要把重複資料刪除掉,重新計算使用者總積分,假設所有積分都是增加的積分。

使用者積分表test_user_points
使用者iduser_id
使用者積分總數point_count

積分記錄表test_point_log
使用者iduser_id
使用者積分總數point

SQL:

UPDATE test_user_points AS a
LEFT JOIN (
	SELECT
		user_id,
		sum(point) AS point_count
	FROM
		test_point_log
	GROUP BY
		user_id
) AS b ON a.user_id = b.user_id
SET a.point_count = b.point_count

如果積分記錄含有加減積分
積分記錄表test_point_log
積分型別behavior_typeobtain為增加 consume為消耗

UPDATE sysuser_user_points_local_bak AS a
LEFT JOIN (
	SELECT
		user_id,
		sum(
			CASE
			WHEN behavior_type = 'obtain' THEN
				point
			ELSE
				0
			END
		) - sum(
			CASE
			WHEN behavior_type = 'consume' THEN
				point
			ELSE
				0
			END
		) AS point_count
	FROM
		sysuser_user_pointlog_online_bak_new
	GROUP BY
		user_id
) AS b ON a.user_id = b.user_id
SET a.point_count = b.point_count

相關推薦

MySql 查詢資料另外MySQL Update Query using a left join

舉慄: 我們的使用者積分出現重複資料,然後我們要把重複資料刪除掉,重新計算使用者總積分,假設所有積分都是增加的積分。 使用者積分表test_user_points 使用者iduser_id 使用者積分總

將資料庫另外

專案裡面用到的資料庫表需要手動修改一些東西。行數少的時候,自己手動設定就可以了。但是行數越來越多,就要想辦法了。 將一列賦值給另外一列,可以讓這個表作為兩個表,兩個表連線起來,再將其中的一個表的列內容賦值給另外一列。sql如下: UPDATE tree_table a IN

SQLDB中取出多個多個變數/一個單個變數

  DECLARE @FIRST_BEGIN    DATETIME DECLARE @FIRST_END        DATETIME DECLARE @SECOND_BEGIN    DATETIME DECLARE @SECOND_END        DATETI

oracle中4個查詢資料並插入到另表裡 擴充套件到查詢到的資料和其他資料共同插入

因為業務的需要,現在需要查詢4個表裡的資料並插入到另一個表內且對應自己想要對應的列。 且表的id應該是根據序列自動生成。 具體建立序列什麼的都不說了,直接上程式碼,欄位都沒改,最近太忙了。 insert into TB_POST_REQUIRE_INFO (id, BE

java實現個數據庫查詢資料經過處理匯入另外個數據庫中

            當資料庫表中有clob欄位或要對錶中資料做較複雜處理時就不太好用指令碼從一個數據庫匯入資料到另外一個數據庫中了,這時就要通過程式碼實現了,下面以orale資料庫為例程式碼如下: import java.sql.Connection; import j

Mysql中如何將其中列的

1、將資料庫一個表中一列的值賦值給另一列:需要創建出兩張表。 需要注意:    將b表中updated_at的值賦值給a表中created_at值。    UPDATE images a INNER JOIN images b   ON a.id=b.id  SET a.c

php後臺查詢結果前臺js的陣列

var android_name = []; var android_count = []; var i = 0 ; <?php foreach($AndroidCountByPhoneName as $k => $v){ ?> //注意:1.這裡最好對結果資料用雙引號引起

使用linq機制 實現datatable連查詢 結果到一個新的datatable

using System.Data;using System.Linq; //注意專案要引用System.Data.DataSetExtensions DataTable dtA = new DataTable(); dtA.Columns.Add("id", typeof(int)

Vuex中取出數組新的數組,新數組push時報錯的解決方法

syn 調度系統 scrip vip tor ood 教育 java初學者 str 如下所示: ? 1 Uncaught Error: [vuex] Do not mutate vuex store state outside mutation hand

關於ajax請求資料,並將資料全域性變數的一些解決方法

在使用ajax請求資料是,開始的時候是打算將ajax的資料取出,並賦予給全域性變數,但是在實際編碼過程中發現並不能將資料賦予給最開始定義的全域性變數,出現這個問題的原因是由於ajax非同步載入的原因,所以只能用其他方法來解決,下來是解決的方法 第一個解決方法沒有使用全域性變數,直接在ajax請求中將請求到的

SQL中將查詢結果變數

DECLARE @sql nvarchar(4000),@called_calls  INT      SET  @sql  ='SELECT @a=COUNT(*) FROM users as u

ajax返回資料全域性變數的問題

問題的引出 使用ajax從後臺查詢資料給ztree賦值初始化時, 發現ajax成功回撥方法中不能將返回值賦給js中宣告的全域性變數, 如圖所示: ztree初始化失敗, 因為ztreeNodes為Null(請自動忽略setting的配置), 在瀏覽器控制

JAVA開發12--將oracle查詢結果JAVA變數

        List<String> account_filter=new ArrayList<String>();  //陣列         String sql_a

vue介面資料data沒有反應

問題:     就是我在介面賦值給了data的變數,然後元件的效果沒有出來(我的是旋轉效果) 程式碼如下: data() { return { slides: [] } }, moun

js 物件複製 物件原型操作 把一個物件A另一個物件B 並且物件B 修改 不會影響 A物件

我最近在做一個vue + element-UI + vue-resource + vuex專案的時候,遇到了一個物件的問題。當我們在專案需要 複製一個物件到另一個物件並且  被複制的物件不能受複製後的物件的影響。我先總結下 我們哪些方法可以複製物件12345678910111

Mysql查詢結果只有條的情況下把變量

lec div class date() where sql logs pan rdate 1 set @n=(SELECT count(day) from log where day=CURDATE()); 2 SELECT @n 把結果中count(day)的值賦值

Vue2配置axios跨域和後端取資料踩坑記

Vue2配置axios跨域 這個系列主要記錄自己實習期間的踩坑過程,不完全準確,只能說這個方法確實解決了我自己的問題,歡迎交流,但不喜勿噴: main.js import Axios from 'axios' Vue.config.productionTip =

MySQL關聯查詢資料

t1表如下:                                    t2表如下:                    (inner) join只有左右表的資料匹配才會返回。 SELECT * FROM t1 INNER JOIN t2 ON t1.

資料查詢資料生成資料

NpgsqlDataAdapter dataDa = new NpgsqlDataAdapter(sql, conn); DataSet dataDs = new DataSet(); dataDa.Fill(dataDs,table); DataView mDataview = new D