| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2263 人关注过本帖
标题:两张表合并的sql语句的写法
只看楼主 加入收藏
rareliu
Rank: 2
等 级:论坛游民
帖 子:44
专家分:28
注 册:2007-10-13
结帖率:0
收藏
 问题点数:0 回复次数:1 
两张表合并的sql语句的写法
现在有两张表:
A表:字段有,[userid int,pid int,did int,byear int,m1 int,m2 int ,m3 int,int,money decimal]
B表:字段有,[userid int ,pid int , did int , byear int ,m1 int,money decimal]
现在我要做的效果是:
  如果B表中userid,pid,did这一组合在A表中没有的,那就将此记录插入到A表中,
  如果B表中的userid,pid,did这一组合在A表中已经存在了,那就将此记录更新到A表中
请大家数据SQL语句会写的,帮忙给出这个正确的SQL语句,谢谢
我现在已经有的做法是:
这是更新语句,可以得到正确结果:
update a set m1=b.m1,money=b.money from  b where b.userid=a.userid and b.pid=a.pid and b.did=a.did and b.byear=a.byear

这是插入语句,但无法得到想要的结果:
insert into a (userid,pid,did,byear,m1,money) select b.userid,b.pid,b.did,b.byear,b.m1,b.money from b
  where not exists (select b1.userid,b1.pid,b1.did,b1.byear,b1.m1,b1.money from b as b1 ,a as a1
                     where b1.userid=a1.userid and b1.pid=a1.pid and b1.did=a1.did)
搜索更多相关主题的帖子: sql 语句 
2008-11-08 12:44
笨鸟先飞%
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-10-31
收藏
得分:0 
insert into a (userid,pid,did,byear,m1,money)
 
中间是不是应该加上    values (b1.userid,b1.pid,b1.did,b1.byear,b1.m1,b1.money)
                             呵呵   也不知道对不对   你试下就知道了 ...
select b.userid,b.pid,b.did,b.byear,b.m1,b.money from b
  where not exists (select b1.userid,b1.pid,b1.did,b1.byear,b1.m1,b1.money from b as b1 ,a as a1
                     where b1.userid=a1.userid and b1.pid=a1.pid and b1.did=a1.did)
2008-11-12 08:59
快速回复:两张表合并的sql语句的写法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018401 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved