select c.*
from cats as c
join prod as p
on c.id = p.cid or c.id = p.cid_2 or c.id = p.cid_3 or c.id = p.cid_4 or c.id = p.cid_5
or c.id = p.cid2 or c.id = p.cid2_2 or c.id = p.cid2_3 or c.id = p.cid2_4 or c.id = p.cid2_5
left join(
select cid, cid_2, cid_3, cid_4, cid_5, cid2, cid2_2, cid2_3, cid2_4, cid2_5 FROM prod where vis=1 order by id desc limit 20
) p2
on c.id = p2.cid or c.id = p2.cid_2 or c.id = p2.cid_3 or c.id = p2.cid_4 or c.id = p2.cid_5
or c.id = p2.cid2 or c.id = p2.cid2_2 or c.id = p2.cid2_3 or c.id = p2.cid2_4 or c.id = p2.cid2_5
where (p.new = 1
or c.id in(p2.cid, p2.cid_2, p2.cid_3, p2.cid_4, p2.cid_5, p2.cid2, p2.cid2_2, p2.cid2_3, p2.cid2_4, p2.cid2_5))
and c.mid = '1004'
and c.vis =1
and p.vis = 1
GROUP BY c.id
order by c.ord desc, c.title ;