Использовать соединения.
Я удалил кое-где условия для большей ясности
SELECT
c.id as c_id,
c.alias as c_alias,
c.title as c_title,
sc.id as sc_id,
sc.alias as sc_alias,
sc.title as sc_title,
a.alias as a_alias,
a.title as a_title,
sa.alias as sa_alias,
sa.title as sa_title
FROM
categories c
LEFT JOIN
articles a
ON
c.id = a.category_id
LEFT JOIN
categories sc
ON
c.id = sc.parent_id
LEFT JOIN
articles sa
ON
sc.id = sa.category_id
ORDER BY
c.rank,
a.rank,
sc.rank,
sa.rank
РЕДАКТИРОВАТЬ: Насколько я вижу, это не тот случай, но если вы хотите получить некоторые элементы неограниченной глубины, вы можете посмотреть способ хранения сильных иерархических данных в реляционной базе данных .