主题:两个表之间的连接,菜鸟求助
xlraul
[专家分:0] 发布于 2008-07-04 10:01:00
有表A和B,其中A有1000条记录,B有800条,B中的记录与A中相同,但是B中多一个字段,现在想将B中该字段连接到A中去,请问如何操作能保持A表中其他完全不变,但能加上B中的那个字段!谢谢各位大侠了!
回复列表 (共8个回复)
沙发
xlraul [专家分:0] 发布于 2008-07-04 13:22:00
各位大侠回了话吧,谢谢!
板凳
cqf8340 [专家分:1810] 发布于 2008-07-04 15:26:00
两表要有一个唯一的关键字进行关联。
select A表.*,B表.新字段 from A表 left join B表 on A表.关键字==B表.关键字 into table 新表
3 楼
cbl518 [专家分:57140] 发布于 2008-07-04 16:26:00
ALTER TABLE 表A ADD COLUMN 新字段名 c(20)
UPDATE 表A SET 表A.新字段名=表B.多的字段名 FROM 表B WHERE A表.关键字==B表.关键字
4 楼
cbl518 [专家分:57140] 发布于 2008-07-04 16:32:00
其中:
ALTER TABLE 表A ADD COLUMN 新字段名 c(20)
是添加一个新字段!
新字段名 c(20)
c 要按,你的源字段的数据类型修改
(20) 括号中的数字,是字段的宽度!
5 楼
xlraul [专家分:0] 发布于 2008-07-04 17:54:00
好象不对啊,大哥们再想想办法啊
6 楼
cqf8340 [专家分:1810] 发布于 2008-07-06 10:28:00
看来楼主是一窍不通。
7 楼
howho [专家分:0] 发布于 2008-07-08 17:05:00
要解释下,最好对2个库用关键字建立索引,再来UPDA 。
8 楼
wuzhouhong [专家分:10890] 发布于 2008-07-10 10:15:00
1)A表比B表记录多,所以连接后存在一个问题:多出来的部分怎么处理,有什么要求
A)舍弃多余的记录,那么连接后剩下800条数据,和B表一样多,使用内连接即可
B)保留多余的记录,那么,保留下来后,多出的字段没有数据可添加,是做成默认的.NULL.还是其他的默认值?
C)假设B表因为某种原因,比如错误输入,出现了不存在于A表关键字的连接字段的值,比如A表关键字是1000~1999,B表出现了一个199,那么这部分的错误是否要处理?
一)不要处理,那直接使用内连接即可
二)需要处理,保留下来,保留下来以后面临和B)项一样的处理选择
楼主先把自己的需求弄清楚,否则后续处理中有很多很多细节,会导致结果和你的要求不一致。
我来回复