首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Doctrine2 -双左联接查询问题

Doctrine2 -双左联接查询问题
EN

Stack Overflow用户
提问于 2018-06-10 02:00:32
回答 2查看 46关注 0票数 1

我在Doctrine中使用Symfony v3.4 branch

我在将SQL查询转换为Doctrine ORM查询时遇到问题。

我有三张桌子。

  • Shop
  • Firm
  • User

用户--> 1:1 -->确定--> 1:1 -->店铺

(Symfony developer工具栏报告表中的关联是正确的)。

我想在一个查询中获得与cretain User对应的Shop数据。

对我的SQL执行,得到一个结果:

代码语言:javascript
复制
SELECT *
FROM mp2_fos_user as u
LEFT JOIN mp2_firm AS f ON u.id = f.firmUserId
LEFT JOIN mp2_shop AS s ON f.id = s.shopFirmId
WHERE u.id = 1

My Doctrine查询

代码语言:javascript
复制
$query = $em->createQueryBuilder()
->select('u, f, s')
->from('App:User', 'u')
->leftJoin('u.userFirm WITH u.id = f.firmUserId', 'f')
->leftJoin('f.firmShop WITH f.id = s.shopFirmId', 's')
->where('u.id = :user_id')
->setParameter('user_id', $user_id)
->getQuery();

此时,运行代码会导致错误

[Syntax Error] line 0, col 57: Error: Expected end of string, got 'u'

对于我的问题,什么是最佳实践?

非常感谢您的帮助,谢谢!

更新

已尝试:

代码语言:javascript
复制
$query = $em->createQueryBuilder()
->select('s.id')
->from('App:User', 'u')
->leftJoin('u.userFirm WITH f.firmUser = u', 'f')
->leftJoin('f.firmShop WITH s.shopFirm = f', 's')
->where('u.id = :user_id')
->setParameter('user_id', $user_id)
->getQuery();

获取[Syntax Error] line 0, col 54: Error: Expected end of string, got 'f'

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50777104

复制
相关文章

相似问题

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