Limitar Resultados em Tabela com INNER JOIN e LEFT JOIN

Olá!

Gostaria de saber se é possível limitar essa consulta em cinco resultados:

SELECT a.*
FROM #__content AS a
LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id
INNER JOIN #__categories AS c ON c.id = a.catid
INNER JOIN #__users AS u ON u.id = a.created_by
WHERE a.state = 1
AND a.introtext LIKE '%<img src%'
AND f.content_id IS NULL
AND c.published = 1
AND c.id = 78
ORDER BY a.publish_up DESC
LIMIT 5

Estou preparando um módulo para o Joomla 2.5 e me deparei com essa dificuldade.
Se a consulta não for limitada, acredito que a aplicação ficará lenta a medida que o banco de dados for crescendo.

Desde já agradeço.
Abraço!
 
Boas
Se a base de dados for SQL pode fazer um TOP 5,se for MySQL pode fazer um LIMIT 0,5.
Cumps

Pessoal, resolvi o problema.
Existia um conflito dentro da aplicação do Joomla que me impedia de usar a função LIMIT no MySQL.

O código ficou assim:
PHP:
$app = JFactory::getApplication();
$db = JFactory::getDbo();

$nullDate = $db->getNullDate();
$date =& JFactory::getDate();
$now = $date->toMySQL();

$query = 'SELECT a.*' .
    ' FROM #__content AS a' .
    ' LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id' .
    ' INNER JOIN #__categories AS c ON c.id = a.catid' .
    ' INNER JOIN #__users AS u ON u.id = a.created_by' .
    ' WHERE (c.id = ' . implode( ' OR c.id = ', $catids ) . ')' .
    ' AND c.published = 1' .
    ' AND f.content_id IS NULL' . 
    ' AND a.state = 1' .    
    ' AND (a.publish_up = ' . $db->Quote($nullDate) . ' OR a.publish_up <= ' . $db->Quote($now) . ')' .
    ' AND (a.publish_down = ' . $db->Quote($nullDate) . ' OR a.publish_down >= ' . $db->Quote($now) . ')' .
    ' AND a.introtext LIKE "%<img src%"' .
    ' ORDER BY a.publish_up DESC';

$db->setQuery($query, $init, $count); // esse método gerava o conflito, então fiz $init = 0 e $count = 5, limitando os resultados da consulta
$rows = $db->loadObjectList();

Esse problema me fez pensar que era impossível usar LIMIT junto a INNER JOIN ou LEFT JOIN, porém, após alguns testes, verifiquei estar enganado.

Obrigado.
 
Back
Topo