说明:
有四个表分别是A,B,C,D表A有1,2,3字段表B有4,5,6字段表C有7,8字段表D有9,10,11字段已知条件:
表A的2字段和表B的5字段关联,表B的5字段又与表C的8字段关联,表C的8字段与表D的10字段关联需求:要四表同时联查,并且插入E表,E表是已存在的表。A表只插入2,3字段,B表5字段C表8字段D表9,10字段自己写的代码如下:insert into E(1,2,3,4,5,6)
select distinct a.2,a.3,c.8,d.9,d.10 FROM A a left join B b on a.2=b.5
left join C c on B.5 = c.8 left join D d on c.8=d.10 以上代码执行后数据会重复,经测试数据每条重复500多遍,如果只用表B,C,D三个表联查就不会出现数据重复。
请大侠帮忙为什么会重复啊?有什么办法能不它重复呢?
有四个表分别是A,B,C,D表A有1,2,3字段表B有4,5,6字段表C有7,8字段表D有9,10,11字段已知条件:
表A的2字段和表B的5字段关联,表B的5字段又与表C的8字段关联,表C的8字段与表D的10字段关联需求:要四表同时联查,并且插入E表,E表是已存在的表。A表只插入2,3字段,B表5字段C表8字段D表9,10字段自己写的代码如下:insert into E(1,2,3,4,5,6)
select distinct a.2,a.3,c.8,d.9,d.10 FROM A a left join B b on a.2=b.5
left join C c on B.5 = c.8 left join D d on c.8=d.10 以上代码执行后数据会重复,经测试数据每条重复500多遍,如果只用表B,C,D三个表联查就不会出现数据重复。
请大侠帮忙为什么会重复啊?有什么办法能不它重复呢?
请大侠帮忙为什么会重复啊?有什么办法能不它重复呢?是完全重复的DISTINCT 才能去重,
没有写上,知道A表里面有数据重复。 A表里面的2字段有很多是重复得。2字段又跟B表的5字段关联。
会出现数据重复。 请问怎么能不让他重复
insert into E(1,2,3,4,5,6)
select a.2,a.3,c.8,d.9,d.10
FROM (select distinct 2,3 from A ) k left join B b on k.2=b.5
left join C c on B.5 = c.8 left join D d on c.8=d.10
select k.*,c.8,d.9,d.10
FROM (select distinct 2,3 from A ) k left join B b on k.2=b.5
left join C c on B.5 = c.8 left join D d on c.8=d.10
不会重复!