What SQL query do you expect to be executed? Try to construct it manually and you will understand why CActiveRecord is not able to generate it. Unfortunately there’s no such SQL construct as “LIMIT 1 FOR EACH author_id”.
Possible solutions:
Specify an ON condition that matches exactly one book per author.
Create a view in your database that contains only one book per author and define HAS_ONE / BELONGS_TO relationship between Author table and the view.