Как уже отмечали другие, оператор соединения может быть сокращен.Также, кажется, есть проблема с оператором в операторе AND;он должен быть <, а не <=, чтобы получить вторую по величине длину (см. здесь: <a href="/11826/kakoi-samyi-prostoi-sql-zapros-dlya-poiska-vtorogo-po-velichine-znacheniya"> Какой самый простой SQL-запрос для поиска второго по величине значения? ).
Я бы предложил попробовать следующее:
SELECT artist.name, recording.name, MAX(recording.length)
FROM recording
JOIN artist ON recording.artist_credit = artist.id
WHERE
artist.gender=1
AND
recording.length < (SELECT MAX(recording.length) FROM recording)
GROUP BY artist.name
ORDER BY artist.name