2016-05-23 14 views
0

Hier ist die Anfrage:Querybuilder und innere Verknüpfung

select concat(user.nom, ' ', user.prenom), trace.action 
from MyBundle:Ttrace trace 
innerjoin MyBundle:User user on user.id = trace.user 
where trace.datfin is null 

Kann jemand übersetzen, dass die Verwendung Querybuilder?

Danke Ich habe versucht, diese aber es funktioniert nicht:

$this->getEntityManager()->createQueryBuilder() 
      ->select("trace.action") 
      ->addSelect("concat(user.nom, ' ', user.prenom)") 
      ->from('MyBundle:Ttrace', 'trace') 
      ->innerjoin('trace', 'MyBundle:User', 'user', 'user.id = trace.user') 
      ->where('trace.datfin is null'); 

Aber es funktioniert nicht.

ich auch versucht:

$this->getEntityManager()->createQueryBuilder() 
      ->select("trace.action") 
      ->addSelect("concat(user.nom, ' ', user.prenom)") 
      ->from('MyBundle:Ttrace', 'trace') 
      ->join('MyBundle:User', 'user') 
      ->where('trace.datfin is null'); 

aber SQL-Abfrage ist falsch mit: innerjoin Benutzer (trace.datfin ist null) NONSENSE !! und natürlich nicht, wo in der SQL-Abfrage

Also, kennt jemand (es ist leicht, sie sagen), wie es zu bauen (mit Query Builder)

ty

+1

Versuchen von sich selbst, zu suchen und zu tun, und dann können wir helfen, wenn Sie – Letsrocks

+0

stecken einfach es ist, wenn Sie lesen: http://symfony.com/doc/current/book/doctrine.html#querying -for-objects-using-document-s-Abfrage-Builder und http://doctrine-orm.readthedocs.io/en/latest/reference/dql-doctrin e-query-language.html # dql-select-examples – Miro

+0

Die von Ihnen vorgeschlagene Dokumentation ist für das Problem nicht ausreichend – mlwacosmos

Antwort

0

es Hoffnung ist Gonna Hilfe jemand :

$qb = $this->getEntityManager()->createQueryBuilder() 
    ->select('trace.action') 
    ->addSelect("concat(user.nom, ' ', user.prenom)") 
    ->from('MyBundle:Ttrace', 'trace'); 
$qb->join('MyBundle:User', 'u', Join::WITH, $qb->expr()->eq('trace.user', 'u.id')); 
$qb->where($qb->expr()->isNull('trace.datfin'); 
Verwandte Themen