SQL-запрос с UNION в доктрине Symfony - PullRequest
5 голосов
/ 02 ноября 2011

У меня есть вопрос о переводе SQL-запроса в Doctrine Symfony.Я хотел бы сделать что-то подобное:

SELECT m.*
FROM member m
INNER JOIN (
  SELECT id_member
  FROM friend
  WHERE id_friend=99
  UNION
  SELECT id_friend
  FROM friend
  WHERE id_member=99
) a ON m.id=a.id_member 
WHERE m.visible=1

В этом примере я ищу всех друзей пользователя 99.

Мои таблицы:

Участник: (id, name, visible)
Friend: (id, id_member, id_friend, active)

Точность: Я хотел бы использовать пейджер Symfony.

Решение?Спасибо!

Ответы [ 2 ]

5 голосов
/ 02 ноября 2011

UNION не поддерживается в DQL, но вы можете выполнить запрос, используя RAW SQL ->

$q = Doctrine_Manager::getInstance()->getCurrentConnection();
$result = $q->execute(" -- RAW SQL HERE -- ");
2 голосов
/ 16 июля 2015

Другая альтернатива @ManseUK:

$em = $this->getEntityManager();
$connection = $em->getConnection();
$statement = $connection->prepare("-- RAW SQL HERE --");
$statement->execute();

return $statement->fetchAll();
...