我用查询生成器创建了一个查询,如下所示:
$qb = $em->createQueryBuilder();
$qb->select(['u.id', 'u.name'])
->from(User::class, 'u')
->where('u.active = 1')
;
$sql = $qb->getQuery()->getSql();
结果如下:
SELECT u1_.user_id as s1, u1_.full_name as s2 FROM users u1_ WHERE u1_.is_active = 1
我想将其作为本机查询来执行,但我必须了解如何将s1, s2
映射到id, name
。
您必须在选择的中使用as
使用您的示例=>
$qb = $em->createQueryBuilder();
$qb->select(['u.id as s1', 'u.name as s2'])
->from(User::class, 'u')
->where('u.active = 1');
$sql = $qb->getQuery()->getSql();
这将id映射到s1
,并将名称映射为s2
我不确定我是否理解你的问题,但如果你想运行一个本机查询,结果是列id
和name
,你可以在查询中替换它们,它们是别名,所以它们可以是你想要的任何东西:
SELECT u.user_id as id, u.full_name as name FROM users u WHERE u.is_active = 1