I loaded your tables and this query executes without an error.
But without any data in the datas. I don't know if it returns the data you are looking for.
SELECT b.bk_title as title
, a.preferred_name as author_name -- can't use table name as alias
, a.last_name AS last_name
, a.suffix AS suffix
, b.bk_year as publish_date
, b.bk_edition as edition
, b.bk_type
, b.bk_isbn as isbn
, p.pub_name AS publisher_name -- can't use table name as alias.
FROM book b
JOIN author a
JOIN publisher p
JOIN bookauthor ba ON ba.book_id = b.book_id
JOIN bookauthor ON ba.author_id = a.author_id;
Please don't put spaces in alias names. e.g. 'Publish Date' That will only lead to heartache.
Alias names aren't quotes text strings.
Good luck,
Barry.