sql中 insert into 需要关联两张表的相同ID

就是关联B、C这两张表相同ID的数据,把数据插入到A表请问这条SQL是不是写错了:insertintoAselecta.id,b.idfromBa,Cbwherea.id... 就是关联B、C这两张表相同ID的数据,把数据插入到A表

请问这条SQL是不是写错了:
insert into A
select a.id,b.id
from
B a,C b
where a.id=b.id;
展开
 我来答
hit_lubin
2011-04-29 · TA获得超过7889个赞
知道大有可为答主
回答量:1554
采纳率:100%
帮助的人:2013万
展开全部
----你的语句,首先A表只有ID列么?如果不只是,那要指定插入哪个列。
----另外,A表有两个ID列么?看你的语句,查询出两个ID,都是一样的,那么A表要求只有两个字段,都是ID,而且插入后,ID相同。
如果只是插入A表的一个ID字段,那么像下边这么写
insert into A(ID)
select b.id
from B,C
where b.id = c.id
追问
A表还有其他字段,字段名都是和B、C表一样的,A表只有一个ID
追答
语句像上边那么写就行,只要注意字段对应就行了。
insert into A(ID, column1,column2...)
select b.id,b.column1,b.column2...
from B,C
where b.id = c.id
spiderrobot
2011-04-29 · TA获得超过871个赞
知道小有建树答主
回答量:930
采纳率:0%
帮助的人:572万
展开全部
语法上没有错,不知道你是想实现什么,上面句子没有和A什么关联,只是把BC表里面的相同的id拿出来放进A表了
更多追问追答
追问
我主要是想把B C表相同ID的所有数据都插入到A表里
追答
可以的,没有大问题,不过,如果a表有主键的话,可能会重复数据报错,
可以考虑用merge来避免这个问题,类似下面的,
merge into a using (select a.id,b.id
from
B a,C b
where a.id=b.id) t
on (a.id=t.id)
when not matched then insert values(t.id) ;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式