作者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/cn.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