我对SQL查询有点新意,我的项目遇到了问题。 实际上,这是我的DQL查询:
$queryBuilder = $this->getModelManager()->getEntityManager($this->getClass())->createQueryBuilder();
$queryBuilder->select('p')
->from($this->getClass(), 'p');
if (!$this->isGranted('ROLE_SUPER_ADMIN')) {
$queryBuilder->leftJoin('p.criteres', 'crit')
->leftJoin('crit.details', 'd')
->leftJoin('d.organes', 'o')
->leftJoin('o.atelier', 'a')
->where('a.country in (' . $this->getUserCountriesFormated().
') OR a.country IS NULL OR a IS NULL OR crit IS NULL OR d IS NULL OR o IS NULL');
}
$queryBuilder->orderby('p.name', 'ASC');
protocole to critere:很多很多 critere to detail:很多很多 详细到organe:很多很多 organe to atelier:多对一
实际上,所有条目都会上升,因为它们在4/5细节上有一个NULL细节。但是他们与一个国家的工作室有联系,所以我不想看到它们。我试过条件像(...)OR(d IS NULL和a.country IS NULL)没有成功。
对不起,如果我的问题看起来很明显,并提前感谢;)