J'ai deux tables "séries" et "programmes" avec des programmes allant de plusieurs à une série.Ordre de la doctrine par table de relations avec limite
table Série
id | name
--------------
1 | lorem
2 | ipsum
3 | foo
4 | bar
Table Programmes
id | name | series_id
---------------------
1 | program1 | 1
2 | program2 | 2
3 | program3 | 3
4 | program4 | 4
5 | program5 | 1
6 | program6 | 2
7 | program7 | 3
8 | program8 | 4
9 | program9 | 1
10 | program10 | 2
11 | program11 | 1
12 | program12 | 2
Je voudrais dans Doctrine (1.2) pour obtenir les deux séries avec le dernier programme, dans cette série de cas 2, suivi de la série 1, voir les deux dernières lignes dans les programmes.
Je dirais:
$q = Doctrine_Query::create()->from('Series s')
->leftJoin('s.Programs p')
->orderBy('p.id desc')
->limit(2);
mais retourne série 4 et série 3. Le problème est que la doctrine utilise une requête distincte obtenir les ID avant de faire la requête où les données seront incluses, ils utilisent cette tactique, comme MySql ne peut pas utiliser la limite dans les sous-requêtes, je pense.
Mes questions, comment voulez-vous obtenir série 2 et série 1 via DQL?