这是请求:
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
有人可以使用查询生成器翻译吗?
谢谢我试过这个,但它不起作用:
$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');
但它不起作用。
我也试过:
$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');
但是SQL查询是错误的: innerjoin user on (trace.datfin 为空) 废话!!当然,在SQL查询中没有任何地方
那么,有人知道(他们说很容易)如何构建它(使用查询构建器)
泰
希望它能帮助某人:
$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');