1. 程式人生 > >多表聯合更新,含有聚合函式

多表聯合更新,含有聚合函式

今天遇到一個場景,需要做這麼一件事
A 表
其中uid是主鍵

uid total_price
1 35
2 66
3 68

B 表

uid price
1 15
1 28
3 22
2 66

要求使用sql來更新A表中的total_price欄位,這個欄位的值是B表中相同uid的price的總值

update A ,(select uid,sum(price) as total from B group by uid) as bbak set A.total_price=bbak.total
where A.uid=bbak.uid;

這是一個多表更新的小例子,只不過在B表中使用到了子查詢

update sql總結

*假定我們有兩張表,一張表為Product表存放產品資訊,其中有產品價格列Price;另外一張表是ProductPrice表

將ProductPrice表中的價格欄位Price更新為Price表中價格欄位的80%

A update table1 t1, table2 ts …的方式:

UPDATE product p, productPrice pp
SET pp.price = pp.price * 0.8
WHERE p.productId = pp.productId
AND p.dateCreated < ‘2004-01-01’

B inner join然後更新:

UPDATE product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
SET pp.price = pp.price * 0.8
WHERE p.dateCreated < ‘2004-01-01’

如果ProductPrice表中沒有產品價格記錄的話,將Product表的isDeleted欄位置為1

UPDATE product p
LEFT JOIN productPrice pp
ON p.productId = pp.productId
SET p.deleted = 1
WHERE pp.productId IS null

同時更新兩張表的

UPDATE product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
SET pp.price = pp.price * 0.8,
p.dateUpdate = CURDATE()
WHERE p.dateCreated < ‘2004-01-01’

update語句的用法還是很豐富的,慢慢學習吧,並不是說一定要記著所有的sql語句,只要遇到場景能夠想到怎麼用就行

相關推薦

聯合更新,含有聚合函式

今天遇到一個場景,需要做這麼一件事 A 表 其中uid是主鍵 uid total_price 1 35 2 66 3 68 B 表 uid price 1 15

Mysql聯合更新、刪除

UPDATE snyts_user u INNER JOIN snyts_order o ON u.user_id = o.user_id INNER JOIN snyts_refund_order r

mysql 聯合更新

        在實際工作中我們經常碰到一些業務要更新多張有關聯的表資料,如果單獨更新每張表,不僅降低效率而且容易出錯,所以在mysql 4.0.4 開始支援多個表的update操作。        假設有兩張表 table1 、table2 關聯關係為 table1.t2_

SQL Update聯合更新的方法

//---------------------------------- SQL Server語法:UPDATE { table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name | rowset_function_limite

Oracle聯合更新

以下是在後臺更新易拓ERP資料庫時遇到的一個問題: 1.在DB14資料庫中將料件號P44開頭,並且品名為"塑料袋"的料件改為消耗性料件.           這個簡單:  UPDATE DB14.ima_file SET ima70 = ‘Y’ WHERE ima

Mysql update聯合更新

下面我建兩個表,並執行一系列sql語句,仔細觀察sql執行後表中資料的變化,很容易就能理解多表聯合更新的用法student表                                                                         cla

手把手教你:聯合更新

簡單的例子: update table11 a set a.name1 = (select b.name2 from table22 b where a.id1 = b.id2)  where exists (select 1 from table22 b where b.

oracle 聯合更新

需要用到exists UPDATE TBL_REALTIME_AD_USER_RPT T3       SET T3.AD_PRICE = (SELECT PRICE                            FROM TBL_ROTATE_AD T4    

SQL Update聯合更新的方法 .

SQL Update多表聯合更新的方法 (1) sqlite 多表更新方法 //---------------------------------- update t1 set col1=t2.col1 from table1 t1 inner join table2 t2

聯合查詢更新

兩個表a,b 根據a,b兩表的客戶ID號去更新a表中的客戶的城市名稱,具體寫法如下: update table_name a  set city_name=(select b.city_name from tmp_cust_city

SQL聯合查詢實現插入/更新/刪除

具體描述:有兩個表相關聯,比如A是主表,B是A的關聯從表。A和B各自的主鍵都是自動增長的。 所以插入順序:先插入A,再插入B;        更新順序:隨意;        刪除順序:先刪除B,再刪除A; 1、刪除B時的聯合查詢語句如下 delete B from B,

DataSnap——利用TParams進行事務更新

.text nal rms exception then 進行 start datasnap final DataSnap——利用TParams進行多表事務更新 服務端: function TSVRDM.multUpdatesByPar(Upda

SQL聯合查詢(LEFT JOIN)條件差異

logs 技術分享 .cn where 聯合查詢 uid exist 包含 into 查詢A: select a.*,b.* into Bus605115_ON_Where_And --(642 行受影響) from PositionN a left join szt

MySQL DML操作--------聯合查詢實戰

join 聯合查詢 mysql dba 1. 背景 * 多表聯合查詢是把不同表的記錄到一起的一種方式 * 在SQL標準中規劃的聯合(join)大致分內連接,外連接,全連接。其中外連接又分左外連接,右外連接。2. 內連接例子 (inner join) [ 員工 --> 部門 ] 

MySQL增刪改查之【聯合查詢】

包括 實現 鼠標 thead 黃曉明 eba 字符 order 有時 很多時候在實際的業務中我們不只是查詢一張表。 在電子商務系統中,查詢哪些用戶沒有購買過產品。 銀行中可能查詢違規記錄,同時查詢出用戶的 查詢中獎信息和中獎人員的基本信息。 以上只是列的情況

關聯更新sql

cheng upan update 表關聯 關聯 sel mce date 多表 UPDATE S_fangyuanxinxi SET wuyeleixing = (SELECT s_dalou.yongtu FROM s_dalou

mysql條件更新

style 手機 cnblogs 更新 code span obi 去除 nbsp 有兩張表bas_student、bas_householder, 去除學生表中與家長表重復的手機號 UPDATE bas_student a,bas_householder b SE

thinkphp3.1 聯合查詢代碼

function table php php代碼 數據集 width pan code 顯示 php代碼 public function info(){ $where[‘openid‘]=session(‘openid‘);////用戶sess

mysql聯合刪除

圖片 ges ext cbc 聯合 art 分享圖片 bdd 數據庫 文件一:01.txt文件二:02.txt登錄mysql選擇數據庫表user結構表user_depart結構導入數據到表user導入數據到表user_depart聯合刪除查看刪除後user表的數據查看刪除後

SharePoint 列表聯合查詢

int lists esp mco 連接 city .com spf 城市 在SharePoint平臺二次開發中,我們有時需要涉及多表關聯查詢展示多列表中的不同字段信息;SharePoint和Sql數據表一樣,也支持多表聯合查詢,但是不像Sql語句那樣簡單,有一定的局限性,