關於使用多表做update的語法
一、當用一個表中的資料來更新另一個表中的資料,T-SQL提供多種寫法(下面列出了二種),但建議用第一種寫法,雖然傳統,但結構清晰。
並且要注意,當用一個表中的資料來更新另一個表中的資料時,二個表一定要有關聯!
1.
update t1 set t1.c2 = t2.c2
from t2
where t1.c1 = t2.c1
2.
Update t1 set t1.c2 = t2.c2
from t1 inner join t2 on t1.c1 = t2.c1
二、FROM 子句中指定的表的別名不能作為 SET column_name 子句中被修改欄位的限定符使用。例如,下面的內容無效:UPDATE titles
SET t.ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
若要使上例合法,請從列名中刪除別名 t 或使用本身的表名。
1.UPDATE titles
SET ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
2.UPDATE titles
SET titles.ytd_sales = t.ytd_sales + s.qty
FROM titles t, sales s
WHERE t.title_id = s.title_id
AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)
[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/66009/viewspace-787708/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE多表關聯UPDATE語句Oracle
- Oracle\MS SQL Server Update多表關聯更新OracleSQLServer
- Mysql跨表更新 多表update sql語句總結MySql
- MySQL 關於 INSERT INTO...ON DUPLICATE KEY UPDATE 的使用MySql
- 如何做多表關聯查詢
- mysql update join,insert select 語法MySql
- onethinkphp 如何做多表關聯查詢PHP
- 關於輸出的小語法點
- 關於PHP的語法介紹,新手必看PHP
- [20180912]關於ANSI joins語法.txt
- Oracle中 Update和insert結合語法Oracle
- 關於debian系統下使用vi編輯語法不高亮的問題
- 【Vue3.0】關於 script setup 語法糖的用法Vue
- UniRx精講(二):獨立的 Update &UniRx 的基本語法格式
- mysql實現merge功能之DUPLICATE key UPDATE語法MySql
- 關於ES6、ES7的常用語法整理
- 關於setRouteLeaveHook無法使用時的替代方案registerTransitionHookHook
- C語言關於標頭檔案的使用C語言
- sql多表的關係介紹SQL
- MySQL關聯多表更新的操作MySql
- 關於SVN update之後,引起衝突的解決方法
- 4.3.2 關於使用SQL語句建立CDBSQL
- Vue 元件的使用語法Vue元件
- MySQL的update語句避坑MySql
- mybatis多表聯合查詢的寫法MyBatis
- 關於Warning: setState(...): Can only update a mounted or mounting component. This
- ES6的相關語法
- mysql中的多表關聯查詢MySql
- 易語言關於微信收款監控軟體寫法的思考
- 關於C語言的常量C語言
- MYSQL基礎語法的使用MySql
- redis的五大資料型別和相關語法的使用Redis大資料資料型別
- Python相關語法2Python
- JPA多表關聯查詢
- 關於刷表法
- 編譯器有關的Makefile語法編譯
- 手擼Mysql原生語句--多表MySql
- 多表查詢建表語句
- 關於Remix的使用REM