2011-11-02 27 views
5

Doctrine SymfonyでのSQLクエリの翻訳に関する質問があります。
DoctrineでUNIONを使用したSQLクエリSymfony

メンバー:私は、ユーザーの99

私のテーブルのすべての友達を検索し、この例では

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 

:私はそのようなことを行うしたいと思います(ID、名前、表示)
フレンド:(id、id_member、 id_friend、active)

精度:私はSymfonyページャを使用したいと思います。

溶液ですか?ありがとうございました !

答えて

4

UNIONがDQL内でサポートされていませんが、あなたはRAW 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(); 
関連する問題