Database 板


LINE

资料库名称:ms sql server 资料库版本:2008 各位好 昨天看到了一个update 写法 如下 T1的栏位和资料如下 ID No Name 1 1 d 2 1 d 3 1 d T2的栏位和资料如下 ID No Na Nc 1 1 A X 4 1 B Y 7 1 C Z update A set Name=B.Nc from T1 A right join T2 B on A.No=B.No where B.Na in ('A','B','C') 如果只看 from 之後的语法 则会捞出九笔资料 但T1其实只有3笔资料 所以每笔都重复了3次 因此update後 到底会更新3笔 还是9笔? 我实际测试後得到 (3 个资料列受到影响) 也就是说 T1的每笔资料 都只会更新一次 既然如此 那T1的Name到底是要更新成 T2的哪个Nc值 是X 是Y 还是Z ? 我透过把 where B.Na in ('A','B','C') 改成 where where B.Na in ('B','C') ,where B.Na in ('A','C') ,where B.Na in ('A','B') 等几种不同条件去观察 但还是看不出更新的准则到底为何? 我本来是猜先出现的先更新 第二次以後出现的就不管他 但好像也不是 可以确定的是 如果捞出来的资料 T1部分每笔资料都只出现一次 EX: where B.Na='A' 这样更新就很明确 不会有模棱两可的情况了 所以 是不是上面的写法不够好 不够明确 应该要更改? 谢谢 -- ※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Database/M.1411614397.A.9F5.html
1F:推 GoalBased: 说明一下你的需求吧 你是要把T1的name 改成甚麽? 09/25 12:20
我的需求仅是了解这样的语法是不是有问题?
2F:→ SeanBoog: 写法对 但结果不是你要的 那你想要的是什麽? 09/25 12:34
3F:推 GoalBased: 同楼上..语法没错..但不知道你要的是甚麽阿 09/25 12:50
4F:→ moyasi: 执行会过写法就一定是对的 重点是你想要的是什麽 09/25 13:13
5F:推 GoalBased: 如果你希望得到的Nc是xxx 那你就用left join 09/25 14:04
6F:→ GoalBased: 至於right join的顺序为什麽会变成第一个和最後一个 09/25 14:04
7F:→ GoalBased: 来回交错,我测了半个小时,还是不知道为什麽 09/25 14:04
其实这正是我想知道的 如果我想要透过T2的某栏位来update T1的某栏位 应该要用left join 我不知道的是 万一误写成right join 导致T1同一笔资料出现好几次 update时会怎样? 实测就是如内文所述那样 和你说的交错 ※ 编辑: kisha024 (203.64.120.93), 09/25/2014 14:23:46
8F:推 GoalBased: 我也跟你说了 我不知道 QAQ 09/25 14:41
没关系 还是很感谢大家的回答 我觉得仍然很有帮助 我上面说的不是很正确 应该说不管是left join 还是right join 只要 on 和where 过滤得宜 让想要update的那张table的每一笔资料最多都只出现一次 这样update就不会有模棱两可的情况了 ※ 编辑: kisha024 (203.64.120.93), 09/25/2014 15:27:33
9F:推 jengting: 请参考这篇讨论 http://ppt.cc/Y9MT 09/26 07:52
10F:→ kisha024: 感谢 10/02 10:53







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP