Non proverei a fare tutto in una query. Preferirei fare diverse piccole query semplici, una per ogni tipo di entità (post in bacheca, commento, ecc.), Quindi assemblare i risultati in codice PHP e inviarli al client.
Non complicare eccessivamente le cose, c'è già molta complessità. :-)
Esempi di query:
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;