są jakieś sposoby aby zmienić zapytanie 'liczące' nie zmieniając zapytania głównego?
w tej chwili doctrine generuje mi masakryczną sieczkę:
SELECT COUNT(*) AS num_results FROM (SELECT a.id FROM ads a LEFT JOIN categories c ON a.categories_id = c.id LEFT JOIN categories_translation c2 ON c.id = c2.id AND (c2.lang = 'en') LEFT JOIN subcategories s ON a.subcategories_id = s.id LEFT JOIN subcategories_translation s2 ON s.id = s2.id AND (s2.lang = 'en') GROUP BY a.id)
Taka kobyła nie dość, że wolna to jeszcze wywala mi błąd:
Cytat
#1248 - Every derived table must have its own alias
natomiast wystarczyłoby mi tylko coś takiego:
SELECT COUNT(*) AS num_results FROM ads
do obsługi listy w admin generatorze używam takiej funkcji:
public function retrieveBackendAdsList(Doctrine_Query $q) { $rootAlias = $q->getRootAlias(); $q->LeftJoin($rootAlias . '.Categories c') ->LeftJoin('c.Translation ct WITH ct.lang = ?', sfContext::getInstance()->getUser()->getCulture()) ->LeftJoin($rootAlias . '.Subcategories s') ->LeftJoin('s.Translation st WITH st.lang = ?', sfContext::getInstance()->getUser()->getCulture()) ->AddSelect($rootAlias .'.*, ct.name as category, st.name as subcategory'); return $q; }
Chciałbym, żeby dotyczyło to tylko zapytania głównego i nie psuło innych zapytań. Jakieś pomysły?
Wiem, że można edytować kod doctrine, aczkolwiek tej zmiany potrzebuję tylko w jednym module, nie w całym serwisie.