Все правильно: связь между таблицами должна быть М:М (многие ко многим), так как у одного автора может быть много книг, и у одной книги может быть много авторов. Вы же спроектировали БД, в которой у книги может быть только один автор.
БД будет примерно такой:
CREATE TABLE authors
(
id INT PRIMARY KEY AUTO_INCREMENT,
author_name VARCHAR(100) NOT NULL UNIQUE
);
CREATE TABLE books
(
id INT PRIMARY KEY AUTO_INCREMENT,
book_title VARCHAR(100) NOT NULL
);
CREATE TABLE book_author_id
(
id INT PRIMARY KEY AUTO_INCREMENT,
author_id INT NOT NULL,
book_id INT NOT NULL,
FOREIGN KEY (author_id) REFERENCES authors (id) ON DELETE CASCADE,
FOREIGN KEY (book_id) REFERENCES books (id) ON DELETE CASCADE
);
И тогда выборка данных по вашему условию будет:
SELECT authors.author_name, COUNT(book_author_id.author_id) as count
FROM authors
LEFT JOIN book_author_id
ON book_author_id.author_id= authors.id
LEFT JOIN books
ON book_author_id.book_id= books.id
GROUP BY authors.author_name
HAVING COUNT(DISTINCT book_author_id.author_id) >= 3;