请教个关于多表关联查询并插入的问题
商品表格式是SPDM,SPMC,LB(表名shangpin)
商品规格1表格式是SPDM,GG1DM,GG1MC(表名GG1)
商品规格2表格式是SPDM,GG2DM,GG2MC(表名GG2)
A单据格式DJBH,CKDM(表名A)
B单据格式DJBH,SPDM,GG1DM,GG2DM,SL1,SL2(表名B)
想将shangpin表里的LB字段等于001的SPDM,SPMC以及所对应的GG1表里的GG1DM和GG2表里的GG2DM全插入到B表里,条件是A表的CKDM所对应DJBH在B表里没有的SPDM
插入格式是 DJBH,SPDM,GG1DM,GG2DM,SL1,SL2 (DJBH和SL1,SL2都是固定值)
(一个shangpin表里的SPDM对应多个GG1表里的GG1DM和GG2表里的GG2DM)
------解决方案--------------------说的不够清楚,或许应该更严格
insert b ( DJBH,SPDM,GG1DM,GG2DM,SL1,SL2 )
select
a.DJBH,s.SPDM,g.GG1DM,c.GG2DM
,SL1 = 1
,SL2 = 1
from a
cross join shangpin s
inner join GG1 g on s.SPDM = g.SPDM
inner join GG2 c on s.SPDM = c.SPDM
where a.lb = '001'
and not exists (
select 1 from b
where a.DJBH = b.DJBH
and b.SPDM = s.SPDM
and b.GG1DM = g.GG1DM
and b.GG2DM = c.GG2DM
)
确定是否正确的方法是,先查询这个语句的select 部分,查看数据是否是你要的,是才执行整个语句