首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ManyToMany查询

ManyToMany查询
EN

Stack Overflow用户
提问于 2017-12-06 21:46:54
回答 1查看 40关注 0票数 0

我正在尝试执行一个多到多的查询。

这个MySQL查询给出了我想要的结果:

代码语言:javascript
复制
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有什么关系?

我试过这样的方法:

代码语言:javascript
复制
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值.

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-12-06 22:20:42

我将快速给出两个例子:

代码语言:javascript
复制
//use Doctrine\DBAL\Connection;

/** @var Connection $conn */
$conn = $this->getDoctrine()->getConnection();
$aResults = $conn->executeQuery($sql)->fetchAll();

代码语言:javascript
复制
//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();

代码语言:javascript
复制
//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();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47683973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档