Ik zou niet proberen om alles in één query te doen. Ik maak liever een aantal kleine eenvoudige zoekopdrachten, één voor elk type entiteit (muurpost, commentaar, enz.), en stel dan de resultaten samen in PHP-code en stuur ze naar de klant.
Maak de dingen niet te ingewikkeld, er is al veel complexiteit. :-)
Voorbeelden van zoekopdrachten:
SELECT p.*, n.*
FROM notifications n
INNER JOIN wall_posts p ON p.id = n.item_id
WHERE n.type_id = 'wall_post' AND n.is_seen = 0;
ORDER BY time_stamp DESC
LIMIT 10;
SELECT c.*, n.*
FROM notifications n
INNER JOIN wall_comments c ON c.id = n.item_id
WHERE n.type_id = 'wall_post' AND n.is_seen = 0;
ORDER BY time_stamp DESC
LIMIT 10;