将SQL转换为createQueryBuilder
我正在尝试转换此sql将SQL转换为createQueryBuilder,sql,doctrine-orm,query-builder,Sql,Doctrine Orm,Query Builder,我正在尝试转换此sql SELECT * FROM user_account LEFT JOIN brand ON user_account.id = brand.user_id_id LEFT JOIN influencer ON user_account.id = influencer.user_id_id' 对于createQueryBuilder,我尝试了这个,但它不起作用 $qb = $this->createQueryBuilder('u') ->from
SELECT * FROM user_account
LEFT JOIN brand ON user_account.id = brand.user_id_id
LEFT JOIN influencer ON user_account.id = influencer.user_id_id'
对于createQueryBuilder,我尝试了这个,但它不起作用
$qb = $this->createQueryBuilder('u')
->from(Brand::class, 'brand')
->from(Influencer::class, 'influencer')
->leftJoin('brand', 'b', 'ON', 'u.id = b.user_id_id')
->leftJoin('influencer', 'i', 'ON', 'u.id = i.user_id_id');
$query = $qb->getQuery();
return $query->execute();
我犯了这个错误
[语义错误]第0行第42列“u.id上的品牌b”附近:错误:类别
“品牌”没有定义
有人能帮忙吗?
非常感谢我从未使用过doctrine query builder,但在阅读文档后,我建议以下解决方案:
$qb = $this->createQueryBuilder()
->from('user_account', 'u')
->leftJoin('u', 'brand', 'b', 'u.id = b.user_id_id')
->leftJoin('u', 'influencer', 'i', 'u.id = i.user_id_id')
$query = $qb->getQuery();
return $query->execute();
注意:我留下了
b.user\u id\u id
,就像您的示例中一样,尽管我认为有输入错误。也许这意味着b.user\u id
。与影响者相同,普通SQL查询是否有效?是的,普通SQL查询有效如果我看得对,您没有从中获取用户帐户表。您也不需要来自品牌
和影响者
,但您需要右键加入leftJoin('u','brand','b','u.id=b.user_id')
;是否有b.user\u id\u id
的输入错误?是的,输入错误很好,但不起作用:/it's not working://@askemeline这有什么错误