一个语句,目的是要连接两个表,有三个条件,三个条件全部满足的才是想要的结果。
我写的是形如:
select a.*,b.xx,b.yy from atable as a left join btable as b
ON a.FSITE = b.fsite AND a.NNO = b.nno AND a.PROJECT = b.project
最后出来的结果却是我想要的结果被重复了两遍,sum出来的结果就成了原值*3我怀疑是我连接的条件写得不对。因为把left jion 改成 inner join,结果也一样请教,这样的语句要怎样写?
我写的是形如:
select a.*,b.xx,b.yy from atable as a left join btable as b
ON a.FSITE = b.fsite AND a.NNO = b.nno AND a.PROJECT = b.project
最后出来的结果却是我想要的结果被重复了两遍,sum出来的结果就成了原值*3我怀疑是我连接的条件写得不对。因为把left jion 改成 inner join,结果也一样请教,这样的语句要怎样写?
只是不知道为什么。莫非多条件查询一定要加distinct,否则就会出很多重复纪录?
后来又看了下,并不是所有记录都重复同样的次数,有的三次有的四次
left join btable as b ON a.FSITE = b.fsite AND a.NNO = b.nno AND a.PROJECT = b.project
比如有2条:
fstit nno project 其他数据
1 2 3 4
1 2 3 5
那样连接出来就有2条,而不是你想要的1条
比如有2条:
fstit nno project 其他数据
1 2 3 4
1 2 3 4
那样连接出来就有2条,而不是你想要的1条
如果A中有2条相同的记录,B中有3条,那么LEFT JOIN出来是2条,INNER JOIN出来是4条,RIGHT JOIN出来是3条。
比如有2条:
fstit nno project 其他数据
1 2 3 4
1 2 3 4
那样连接出来就有2条,而不是你想要的1条
如果A中有2条相同的记录,B中有3条,那么LEFT JOIN出来是2条,INNER JOIN出来是6条,RIGHT JOIN出来是3条。