如何用sql语句修改表中字段值,值要取自另一张表

具体是这样的:表1中有如下四个字段编号,姓名,卡号,余额1张三1232李四124....100若干233表2中有如下字段:卡号,余额现在的问题我想把表1中的余额这个字段的... 具体是这样的:表1中有如下四个字段
编号,姓名,卡号,余额
1 张三 123
2 李四 124
....
100 若干 233

表2中有如下字段:
卡号,余额
现在的问题我想把表1中的余额这个字段的内容更新为表2中的余额,也就是说,表1中的卡号为123的余额更新为表2中卡号为123的余额。以卡号为索引。但表2中的记录可能不只是表1一一对应的,也就适说表2中有的记录表1中时没有的,而表1中有的记录可能表2中也是没有的,我表述的不太清楚,不知道各位能不能听明白。
当然我也知道两个表有共同的索引字段,在编程的时候能够根据这个字段到另外一个表里取值,这个先不考虑,我就是单纯的想知道上面我描述的这个结果怎么用语句来实现,是用update语句吗?应该加什么条件呢?谢谢各位,我的百度财富分不多,请谅解。
展开
 我来答
badkano
2013-04-02 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885360
团长

向TA提问 私信TA
展开全部
那你就是要把凡是表1和表2相同的改了吧?
如果卡号无重复
这么写
update 表1 t1 set t1.余额=(select t2.余额 from 表2 t2 where t2.卡号=t1.卡号)

财富是浮云,帮到你才是真的
更多追问追答
追问
这个语句能把表1中若干条记录的余额更改成以卡号对应的表2中的余额吗?会不会出现这种问题,就是表2中用select选出来的和表1中对应的那些记录,然后按顺序的填充到表一的余额中,而不是按卡号对应的填充余额,会这样吗?
追答
只要表2里的卡号唯一就没问题
怕的是表2里有重复卡号
我这个,会把表1即使有重复的卡号也都会更改为表2里唯一卡号对应的余额,顺便问一句,啥数据库

---补充---
不放心的话,你可以先备份一下表1,别真有问题到时候不好办
FreeSoftnc
2013-04-02 · TA获得超过118个赞
知道小有建树答主
回答量:316
采纳率:0%
帮助的人:269万
展开全部
--Sql By MySql 5.1
--update data in tab2

update tab2,tab1 set tab2.ye=tab1.ye where tab2.kh=tab1.kh
--insert data in tab2
insert into tab2 ( kh,ye) select kh,ye from tab1 where tab2.kh not in ( select kh from tab1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式