我对在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,id_member, id_friend,活跃的)
精确度:我想使用Symfony寻呼机。
解决方案?谢谢!
答案 0 :(得分:5)
DQL中不支持UNION,但您可以使用RAW SQL发出查询 - >
$q = Doctrine_Manager::getInstance()->getCurrentConnection();
$result = $q->execute(" -- RAW SQL HERE -- ");
答案 1 :(得分:2)
@ManseUK的其他替代方案是:
$em = $this->getEntityManager();
$connection = $em->getConnection();
$statement = $connection->prepare("-- RAW SQL HERE --");
$statement->execute();
return $statement->fetchAll();