
替代方法:
left join + union(可去除重复数据)+ right join
两张表时:
select * from A left join B on A.id = B.id (where 条件)unionselect *from A right join B on A.id = B.id (where条件);
示例:
全连接后,排除两个表的重复数据
select * from(
SELECT a.纳税人名称,a.税务金额,b.单位名称,b.业务金额 from
(SELECT 纳税人名称,sum(实缴金额) as 税务金额 FROM 养老_税务 GROUP BY 纳税人名称) a
left join
(SELECT 单位名称,sum(总金额) as 业务金额 FROM 养老_业务 GROUP BY 单位名称) b
on a.纳税人名称=b.单位名称
union
SELECT a.纳税人名称,a.税务金额,b.单位名称,b.业务金额 from
(SELECT 纳税人名称,sum(实缴金额) as 税务金额 FROM 养老_税务 GROUP BY 纳税人名称) a
right join
(SELECT 单位名称,sum(总金额) as 业务金额 FROM 养老_业务 GROUP BY 单位名称) b
on a.纳税人名称=b.单位名称
)t
where not(纳税人名称=单位名称 and 税务金额=业务金额)
or 纳税人名称 is null
or 单位名称 is null
文章转载自云自由,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




