İşine yarayacaklar için arkadaşın kodunu şu şekilde düzenledik;

$kategoriler=$db->prepare("SELECT * from kategoriler WHERE kategori IN(SELECT kategori_adi FROM haberler) order by kategori_sira ASC");
$kategoriler->execute(array( ));
$kategoriler=$kategoriler->fetchAll(PDO::FETCH_ASSOC);


Veritabanı dağınık oldugu için bu şekilde yaptık.

Yaptığımız işlem ise :

Kategori tablosundan kategorileri okuyoruz, haberler tablosundaki kategori_adi kolonunda aratıyoruz, eğer haberlerde o kategoride haber yok ise kategoriyi çıkarttırmıyoruz.