作者shadow0828 (policy of Ginshou)
看板Database
標題[SQL ] Update中SET的問題
時間Wed Jul 30 10:20:59 2014
(針對
SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行)
資料庫名稱:MS-SQL
資料庫版本:2012
內容/問題描述:
是這樣的,
TABLE A Table B Table C
_Id Weapon _Id _MasterId Weapon WeaponX _Id WeaponX WeaponY
1 Sword 1 1 Sword 1 D Leyva Sword
| | 2 | | 2 S of Amu Sword
| | 3 | |
| | 5000 500 Sword
500 Sword
A和B為關聯 (B._MasterId = A._Id)
小弟已經有成功用語法將TableA的資料用Cursor-FETCH的方式Insert到TableB
現在小弟希望把C.WeaponX的資料Update到B.WeaponX
已經試著用過子查詢方式來處理,但是查回項目因為不只一個
直覺寫法是
UPDATE TABLE B
SET WeaponX = (SELECT WeaponX FROM TableC)
WHERE WeaponX = TableC.WeaponY
SET修改成TableC.WeaponX的話只會出現第一筆資料...
看過網路相關的部份似乎沒有相似的解答(幾乎都只有SET = 一值)
還望請先進們不吝賜教
--
愛的她 說的話 多尷尬 字句都是傷疤
淚雙掛 如雨下 滿臉頰 也無意再掙扎
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.67.178.55
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Database/M.1406686866.A.AA4.html
1F:推 Ammenze:你的Table C必須要有個欄位對應到Table A or B才行 07/30 13:29
是這樣的 TableB.Weapon = TableC.WeaponY
小弟是想把指到的順序依序排入TableB.WeaponX
如果是Insert的話會是
Insert Table B(WeaponX)
Select WeaponX From TableC
這是新增資料的結果,小弟想要把它改成Update的寫法寫入
但碰上了瓶頸需要指點,還請先進不吝指教
※ 編輯: shadow0828 (203.67.178.55), 07/30/2014 13:36:15
2F:→ bohei:Table B 500筆 Table C 2筆? 07/30 14:44
小弟是要重複寫入的方式
也就是 B(奇數/偶數) = C(奇數/偶數) 的WeaponX值
※ 編輯: shadow0828 (203.67.178.55), 07/30/2014 16:28:34
3F:推 bohei:B id mod 2 二分,去對應到C,應該就只有對應到一筆 07/30 18:31
4F:→ bohei:就可以使用UPDATE了 吧? 07/30 18:31
5F:→ Ammenze:Update TableB Set WeaponX=TableC.weaponX From TableB 07/30 23:13
6F:→ Ammenze:Join TableC ON TableB.Weapon=TableC.WeaponY 試試 07/30 23:13
7F:推 rockchangnew:樓上正解 08/03 19:42
8F:→ shadow0828:感謝先進們不吝賜教 受教了qq 08/07 20:21
9F:→ bohei:所以問題解決了嗎? 請問最後是使用什麼方法呢? 08/07 20:30
10F:→ shadow0828: 感謝不吝次較,最後是用了A大的指令去下qq 08/20 11:59