Как ограничить выборку запроса с объединением таблиц по одной таблице на SQL
1. Вместо обычно джойна делаем немного необычный:
SELECT *
FROM comments as c
INNER JOIN (SELECT * FROM articles LIMIT 10) as a
ON a.id = c.aticle_id
2. Одним запросом никак.
3. Одним запросом никак.

2 и 3 делается обычным селектом статей с limit или без, а затем выборкой комментариев для каждой статьи с лимитом или без.
Для 2 и 3 можно так:SELECT   t1.title, t1.date, t1.author, t1.text  
FROM         
(SELECT     articles.title, articles.date, comments.author, comments.text, articles.id as aid, comments.id as cid, DENSE_RANK() OVER   ( ORDER BY articles.id DESC) as article_row, row_number () over (partition by articles.id order by comments.id) as comment_row
FROM    articles INNER JOIN  comments ON articles.id = comments.article   ) AS t1
WHERE t1.article_row<=2 and t1.comment_row<=5
ORDER BY t1.aid DESC, t1.cid
Хотя этот вариант не оптимален по скорости, т.к. фактически сначала нумеруются статьи и комментарии к каждой статье, а затем уже отрезается лишнее.