比如表A inner join B
on A.ID = B.ID
假如B存在一个ID对应多条信息,那么即使我们在前面select用了distinct ID,
这种连接下还是会出现重复的id
1.首先B中含有ID的后续信息如果被我们select了,即使distinct ID也没有用。那么,需要思考和判断那些后续信息是否对我们的工作有用,无用可以直接删掉不要select,这样只留下distinct ID的数据,明显不会有重复ID
2.如果一定要去除指定的重复ID并留下想要的后续信息,可以使用row_number的三种排序方式留下指定的数据。
3.配合max min进行筛选唯一值,因为最大值最小值一般是唯一的,我们可以通过只留下最大值这种方法使一对多的情况减轻,但有时候这种一对多并不会完全消失,还需要配合使用其他限制条件