select goods.id,name,weight,total from goods left join (select goods_id,sum(count) total from trans group by 1 having sum(count)>20 )a on goods.id = a.goods_id where weight<50 order by 1