2011-11-02 119 views
5

我有一个关于在Doctrine Symfony中SQL查询翻译的问题。我愿做这样的事情:UNION在Doctrine Symfony中的SQL查询

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)
朋友:(id,id_member, id_friend,active)

精度:我想使用Symfony寻呼机。

解决方案?谢谢 !

回答

4

联盟内不支持DQL,但可以使用原始的SQL发出查询 - >

$q = Doctrine_Manager::getInstance()->getCurrentConnection(); 
$result = $q->execute(" -- RAW SQL HERE -- "); 
+0

谢谢你,它完美:) – Hofstadter

2

到@ManseUK其他替代方法是:

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

return $statement->fetchAll();