我正在尝试转换这个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_id
。influencer
也是如此。