[SQL ] Update中SET的問題

看板Database作者 (policy of Ginshou)時間11年前 (2014/07/30 10:21), 11年前編輯推噓3(307)
留言10則, 4人參與, 最新討論串1/1
(針對 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://www.ptt.cc/bbs/Database/M.1406686866.A.AA4.html

07/30 13:29, , 1F
你的Table C必須要有個欄位對應到Table A or B才行
07/30 13:29, 1F
是這樣的 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

07/30 14:44, , 2F
Table B 500筆 Table C 2筆?
07/30 14:44, 2F
小弟是要重複寫入的方式 也就是 B(奇數/偶數) = C(奇數/偶數) 的WeaponX值 ※ 編輯: shadow0828 (203.67.178.55), 07/30/2014 16:28:34

07/30 18:31, , 3F
B id mod 2 二分,去對應到C,應該就只有對應到一筆
07/30 18:31, 3F

07/30 18:31, , 4F
就可以使用UPDATE了 吧?
07/30 18:31, 4F

07/30 23:13, , 5F
Update TableB Set WeaponX=TableC.weaponX From TableB
07/30 23:13, 5F

07/30 23:13, , 6F
Join TableC ON TableB.Weapon=TableC.WeaponY 試試
07/30 23:13, 6F

08/03 19:42, , 7F
樓上正解
08/03 19:42, 7F

08/07 20:21, , 8F
感謝先進們不吝賜教 受教了qq
08/07 20:21, 8F

08/07 20:30, , 9F
所以問題解決了嗎? 請問最後是使用什麼方法呢?
08/07 20:30, 9F

08/20 11:59, , 10F
感謝不吝次較,最後是用了A大的指令去下qq
08/20 11:59, 10F
文章代碼(AID): #1Js5QIga (Database)