某公司数据库查出数据变多,但是在公司内的本地环境和测试环境都测试没有问题。后来检查发现是因为左外连接的问题。A表数据与B表数据为一对多的关系。如:
SELECT * FROM tableA left join tableB on A.ID=B.ID
A表结构为:
B表结构为:
左外连接查询后为:
对于这种情况,应该先对外连接的表的对象进行分析,看看是不是一对多,如果是的话应该先对右表进行去重。
可以用group by
这样结果就没错了
某公司数据库查出数据变多,但是在公司内的本地环境和测试环境都测试没有问题。后来检查发现是因为左外连接的问题。A表数据与B表数据为一对多的关系。如:
SELECT * FROM tableA left join tableB on A.ID=B.ID
A表结构为:
B表结构为:
左外连接查询后为:
对于这种情况,应该先对外连接的表的对象进行分析,看看是不是一对多,如果是的话应该先对右表进行去重。
可以用group by
这样结果就没错了