今天在多边联合查询的时候,left join了好几个表,致使查出的数据与主表数据数量不一样
后分析得知,右表存在重复数据,所以left join时匹配出重复数据,解决以及分析如下:作者:戚立龙
select
t.id as id,
u.id as userid,
o.name as deptname,
u.name as username,
t.usermobile,
count(t.usermobile) as totalnum,
sum(t.actualpayment) as totalamount,
0 as alreadyamount,
0 as alreadynum
from
base_travel t
left JOIN
base_user u
on t.usermobile=u.mobile
left join
base_user_carrierinfo uc
on u.id = uc.userid
LEFT JOIN
(SELECT * from pub_user_org GROUP BY pk_user)AS uo
on uc.account=uo.pk_user
left JOIN
pub_org o
on uo.pk_org=o.pk_org
where
o.carrierid =3046
and t.status != 0
group by
t.usermobile ;