Подзапросы с Doctrine_RawSql - PullRequest
       8

Подзапросы с Doctrine_RawSql

0 голосов
/ 12 октября 2010

Возможно ли иметь подзапросы в поле выбора Doctrine_RawSql?

$q->select('{t.*}, {i.*}, {e.*}, {f.*}, {f2.*}');
$q->addSelect("(SELECT f.id FROM Following f WHERE f.follower_id = ? AND f.following_id = t.owner_id) AS following");
$q->addSelect("(SELECT COUNT(c.id) FROM PostComments c WHERE c.post_id = t.id) AS num_comments");

Приведенный выше пример - это то, что я устал, но он в значительной степени нарушает запрос (он не будет выбирать ничего, кромепервичные ключи в каждом ряду).

Есть ли особый способ сделать это или мне просто не повезло?

Ответы [ 2 ]

0 голосов
/ 25 октября 2010

Я на самом деле исправил эту проблему, изменив функцию parseDqlQueryPart в Doctrine_RawSql, приняв параметр «select_sql» (вместо простого «select») и отобразив его, как если бы он был DQL. Это позволяет мне использовать Doctrine вместо PDO.

0 голосов
/ 18 октября 2010

Когда у меня сложный запрос, который слишком сложен для DQL, я обычно просто беру объект PDO и вводю запрос вручную. Вот как это сделать:

$PDO = Doctrine_Manager::getInstance()->connection()->getDbh();
$PDO->prepare("
    //SQL Query Here
")->execute();

Экономит много времени, и конечный результат, вероятно, также немного более понятен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...