Consulta SQL con UNION en Doctrine Symfony
pagination symfony-1.4 (2)
Tengo una pregunta sobre la traducción de una consulta SQL en Doctrine Symfony. Me gustaría hacer una cosa así:
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
En este ejemplo, busco todos los amigos del usuario 99.
Mis tablas:
Miembro: (id, nombre, visible)
Amigo: (id, id_member, id_friend, activo)
Precisión: me gustaría utilizar el buscapersonas Symfony.
Una solución ? Gracias !
UNION no es compatible con DQL, pero puede emitir su consulta utilizando SQL RAW ->
$q = Doctrine_Manager::getInstance()->getCurrentConnection();
$result = $q->execute(" -- RAW SQL HERE -- ");
Otra alternativa a @ManseUK es:
$em = $this->getEntityManager();
$connection = $em->getConnection();
$statement = $connection->prepare("-- RAW SQL HERE --");
$statement->execute();
return $statement->fetchAll();