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; 展开
请问这条SQL是不是写错了:
insert into A
select a.id,b.id
from
B a,C b
where a.id=b.id; 展开
2个回答
展开全部
----你的语句,首先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表有两个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
展开全部
语法上没有错,不知道你是想实现什么,上面句子没有和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) ;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |