I ended up with something similar, but different to the three answers given:

SELECT publishers.*,
COUNT(authors.publisher_id) AS 'author_count',
COUNT(books.author_id) AS 'book_count'
FROM publishers
LEFT JOIN authors ON (authors.publisher_id = publishers.id)
LEFT JOIN books ON (books.author_id = authors.id)
GROUP BY publishers.id;

Email codedump link for MySQL: How to count references to references to a table?