我正在尝试执行一个多到多的查询。
这个MySQL查询给出了我想要的结果:
select * from service_offer
left join service on service.id_service = service_offer.id_service
left join user on user.id_user = service_offer.id_user我和Symfony有什么关系?
我试过这样的方法:
public function findAllServiceOffers(){
$query = $this->getEntityManager()
->createQuery(
'SELECT s, u FROM AppBundle:Service s
INNER JOIN AppBundle:User u'
);
try {
return $query->getResult();
} catch (\Doctrine\ORM\NoResultException $e) {
return null;
}
}但我明白这个错误:
语法错误第0行
如果我添加WHERE或WITH子句,查询将执行,但我有NULLs值.
提前谢谢。
发布于 2017-12-06 22:20:42
我将快速给出两个例子:
//use Doctrine\DBAL\Connection;
/** @var Connection $conn */
$conn = $this->getDoctrine()->getConnection();
$aResults = $conn->executeQuery($sql)->fetchAll();或
//use Doctrine\DBAL\Connection;
/** @var Connection $conn */
$conn = $this->getDoctrine()->getConnection();
$query = $conn->createQueryBuilder()->select('fields')->from('table1','alias_table1');
$query->leftJoin('alias_table1','table2','alias_table2','alias_table1.ID = alias_table2.ID');
$aResults = $query->execute()->fetchAll();或
//use Doctrine\ORM\EntityManager;
/** @var EntityManager $em */
$em = $this->getDoctrine()->getManager();
$sSQL = $em->createQuery("SELECT t1,t2 FROM YourBundle:Table1 t1 LEFT JOIN t1.fieldOfEntityDoctrine t2 WHERE t2.ID = 'example'")->getSQL();https://stackoverflow.com/questions/47683973
复制相似问题