MySQL联表查询数据重复

原因

联表查询逻辑有问题

原代码
MySQL联表查询数据重复_第1张图片
更改后代码
MySQL联表查询数据重复_第2张图片
可以看到,这两次查询在联表时ON中的条件不一样,后面的多了一个筛选activity_id,如果不加这个条件的话,ON的时候主表与子表的记录不是一一对应的,会与本来我们不需要联表的数据进行联表,所以会产生很多虚假数据。

总结

我们要保证联表查询时ON中的条件能够是一一对应的,即通过这个条件应该只能对应从表的唯一一条记录,这样就不会产生虚假的联表数据。

你可能感兴趣的:(MySQL,项目实战,mysql)