MySQL anterior à versão 8.0 não suporta a cláusula WITH (CTE no jargão do SQL Server; Subquery Factoring no Oracle), então você fica usando:
- Tabelas TEMPORÁRIAS
- Tabelas DERIVADAS
- visualizações inline (efetivamente o que a cláusula WITH representa - elas são intercambiáveis)
A solicitação do recurso remonta a 2006.
Como mencionado, você forneceu um exemplo ruim - não há necessidade de realizar uma subseleção se você não estiver alterando a saída das colunas de forma alguma:
SELECT *
FROM ARTICLE t
JOIN USERINFO ui ON ui.user_userid = t.article_ownerid
JOIN CATEGORY c ON c.catid = t.article_categoryid
WHERE t.published_ind = 0
ORDER BY t.article_date DESC
LIMIT 1, 3
Aqui está um exemplo melhor:
SELECT t.name,
t.num
FROM TABLE t
JOIN (SELECT c.id
COUNT(*) 'num'
FROM TABLE c
WHERE c.column = 'a'
GROUP BY c.id) ta ON ta.id = t.id