Le titre ce se post ne doit pas être très clair mais je vais tenter de l'éclaircir.

J'ai deux objets "Zend_Db_Table_Abstract" liés : TArticle et TArticlesPriority

Au niveau de la modélisation de ma base de donnée, un Article a une Priorité. Une Priorité peut être affectée à plusieurs Articles.

En PHP, mon implémentation résemble à ça.
(Le code ci-dessous ne fonctionne pas mais c'est pour vous montrer l'idée. J'ai essayé plusieurs manière, plus réalistes que ci-dessous, mais sans succès... )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class TArticle extends Zend_Db_Table_Abstract
{
    protected $_name = 'articles';
    protected $_primary = 'id';
    protected $_rowClass = 'Article';
 
    protected $_referenceMap = array(
        'ArticlesPriority' => array(
        'columns'           => 'articles_priority_id',
        'refTableClass'     => 'TArticlesPriority'
        )
    );
 
    public static function findByTitle($title, $count = NULL, $offset = 0)
    {
        $article = new TArticle();
        return $user->fetchAll('actived = 0', 'pseudo', $limit, $offset) ->
                        order(array('articles_priorities.order_num ASC', 'article.date_creation DESC'))->
                        limit($limit, $offset);
    }
}
Ce que j'aimerais, c'est récupérer tous les articles (sous forme d'objets Articles dans un rowset) ordonnés par priorité.

En SQL, ça donnerait un truc dans le genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT a . *
FROM articles a
INNER JOIN articles_priorities p ON a.articles_priority_id = p.id
ORDER BY p.order_num
LIMIT 0 , 10
;
Est-ce possible? Et si oui comment?