问题记录:关于关联查询多表联查时,关联的条件在A表存在,B表存在,C表存在时(即有别的表存在同样的条件),会造成LEFT JOIN ON后面的条件出现重复的数据。是由于关联查询时多表连接的条件不是唯一条件造成的。
解决方案:1.先找出是哪个表造成的条件不唯一, 2.关联关系上补上唯一条件
SELECT * FROM tableA a left join tableB b on a.instance_id=b.instance_id left join tableC c on a.instance_id=c.instanceId WHERE 1=1
假设此时出现重复是由于c表中的关联条件并非是唯一条件,
解决方案 1->:
SELECT *
FROM tableA a
left join tableB b on a.instance_id=b.instance_id
left join tableC c on a.instance_id=c.instanceId AND b.bill_date = q.date_time
WHERE 1=1
加上另一个可以解决唯一性的条件即可。
解决方案 2->:更换关联条件为满足唯一性的条件