Reputation: 53
I have a question about the translation of a SQL query in Doctrine Symfony. I would like to do a thing like that :
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
In this example, i search all friends of the user 99.
My tables :
Member: (id, name, visible)
Friend: (id, id_member, id_friend, active)
Precision : I would like to use the Symfony pager.
A solution ? Thank you !
Upvotes: 5
Views: 9643
Reputation: 2444
Other alternative to @ManseUK is:
$em = $this->getEntityManager();
$connection = $em->getConnection();
$statement = $connection->prepare("-- RAW SQL HERE --");
$statement->execute();
return $statement->fetchAll();
Upvotes: 3
Reputation: 38147
UNION is not supported within DQL, but you can issue your query using RAW SQL ->
$q = Doctrine_Manager::getInstance()->getCurrentConnection();
$result = $q->execute(" -- RAW SQL HERE -- ");
Upvotes: 5