2011-11-02 19 views
5

Doctrine Symfony'de bir SQL sorgusunun çevirisi hakkında bir sorum var.
Doctrine Symfony'de UNION ile SQL sorgusu

üye: i kullanıcının 99.

Benim tablolar Tüm arkadaşları aramak, bu örnekte

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 

: Ben böyle bir şey yapmak istiyorum (id, isim, görünür)
Arkadaş: (id, id_member, id_keşi, aktif)

Hassas: Symfony çağrı cihazını kullanmak istiyorum.

Çözüm? Teşekkür ederim !

cevap

4

BİRLİĞİ DQL içinde desteklenmez, ancak RAW SQL kullanarak Sorgunuzla verebilir ->

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

teşekkürler, mükemmel çalışıyor :) – Hofstadter

2

@ManseUK Diğer alternatiftir:

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

return $statement->fetchAll();