我正在尝试将查询转换为DQL或使用查询构建器构建ir。 我可以通过以下查询成功地检索数据库的结果:
SELECT * FROM flag
left join countries
on flag.id = countries.flag
where countries.flag IS NULL
现在,我需要将其转换为DQL或使用queryBuilder构建它。 我的实体是国家和国旗。实体Country作为外部标识的字段标志。
到目前为止,我得到了以下代码:
$qb = $em->createQueryBuilder();
$available =
$qb
->select('f')
->from('Flag', 'f')
->leftJoin('Countries', 'c', 'ON', 'c.flag = f.id')
->where('f.id IS NULL');
我的$ $转储不会返回任何内容。 这个QueryBuilder有什么特别之处?
感谢。
答案 0 :(得分:1)
您还需要实际执行查询:
$result = $qb->getQuery()->execute();
应该给你结果。
答案 1 :(得分:1)
where('f.id IS NULL');
错了。
应该是
where('c.flag IS NULL');
答案 2 :(得分:0)
感谢您的帮助。
两个答案都是正确的。下面是最后的代码,以防其他人搜索。 此外,我不得不更换' ON'与' WITH'。
$available =
$qb
->select('f')
->from('Flag', 'f')
->leftJoin('Countries', 'c', 'WITH', 'c.flag = f.id')
->where('c.flag IS NULL');
$flags = $qb->getQuery()->execute();