问题描述:在写一个模块的查询时需要去left join另外一个表,我在xml里编写好sql语句,发现查询效果如下
一条数据查询出两条一样的,唯一不一样的在业主姓名这里,但是这些多出来的数据有一个字段的数据都是相同的。刚好这个字段又是我left join另外一个表查询的字段,想到这,我顺着这个思路开始去找问题。
问题解决:
之前我的sql查询语句是这样的
select cr.*, co.real_name as ownerName
from cm_repair cr
left join cm_owner co on cr.openid = co.openid
改动后
select cr.*, co.real_name as ownerName
from cm_repair cr
left join cm_owner co on cr.openid = co.openid
and cr.del_flag = '0' and co.del_flag = '0'
加了一行:
and cr.del_flag = '0' and co.del_flag = '0'
del_flag这个字段的意思如下
为什么加上这一行就解决了呢,我的理解是这样的:不加以上两个条件,查询会把业主表已经删除的记录也取出来做条件查询,从而照成数据查重。
有不足或者不对的地方欢迎大家在评论区指出。
看到这里了,可以给我点个赞,评论一下吗?谢谢了