Mysql 条令查询生成器
我正在使用symfony3.4中的原则2,我有一个复杂的查询:Mysql 条令查询生成器,mysql,symfony,doctrine-orm,query-builder,Mysql,Symfony,Doctrine Orm,Query Builder,我正在使用symfony3.4中的原则2,我有一个复杂的查询: $query = $this->createQueryBuilder( 'SELECT id FROM AppBundle:Room WHERE id NOT IN ( SELECT room_id FROM AppBundle:Bookings WHERE NOT ( checkOut <= :check_in OR checkIn >= :check_out
$query = $this->createQueryBuilder(
'SELECT id FROM AppBundle:Room WHERE id NOT IN ( SELECT room_id FROM AppBundle:Bookings WHERE NOT ( checkOut <= :check_in OR checkIn >= :check_out ) ) ORDER BY id'
)
->setParameter('check_in', $request->query->get('check-in'))
->setParameter('check_out', $request->query->get('check-out'))
->getQuery();
return $rooms = $query->execute() ;
createQueryBuilder方法需要一个字符串作为第一个参数,但您提供的是完整的查询语句,结果如下: 选择从表中选择id… 引发异常的异常(粗体部分是createQueryBuilder方法中的查询) 请尝试以下方法:
$this->createQueryBuilder('alias')->addSelect('alias.id')
->where(...)
->orderBy(...)
希望能有帮助
编辑
在where中,您可以在旧代码的where之后放置where,但使用查询生成器,您可以在不使用sql的情况下构建查询,并让doctrine为您构建查询
检查此项谢谢您的有用回答。我知道这个问题写得很糟糕,但我想你明白我的意思了。我想现在很清楚了。你能写下剩下的代码吗?我必须在where里写些什么?@Mostafa不要问剩下的代码,他给你提供了一个解决方案和文档,所以继续读吧,自己尝试一下,不要期望这里有人为你构建代码!祝你好运
$this->createQueryBuilder('alias')->addSelect('alias.id')
->where(...)
->orderBy(...)