将SQL转换为createQueryBuilder



我正在尝试转换这个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(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列,靠近"brand b ON u.id":错误:类未定义"brand"。

有人可以帮忙吗?非常感谢

我从未使用过条令查询生成器,但在阅读了文档后,我建议使用以下解决方案:

$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_id_id,就像您的示例中一样,尽管我认为有一个拼写错误。也许这应该意味着b.user_idinfluencer也是如此。

相关内容

  • 没有找到相关文章

最新更新