我想使用queryBuilder检索一些数据,条件是在父表上使用datetime字段并将其传递给where条件,子表有两个日期的开始和结束,整个条件是选择父行依赖于子表中两个日期之间的日期 代码是:
$qb->select('parent,child')
->from($this->class, 'parent')
->innerJoin('parent.childTable', 'child')
//other join
// and where
//CONDITION -> startdate <= $date AND enddate >= $date
$betweenDates = $qb->expr()->andX(
$qb->expr()->gt("child.dateStart", "parent.datetime"),
$qb->expr()->lt("child.dateEnd", "parent.datetime")
);
//CONDITION 4 -> enddate == NULL
$endDateNull = $qb->expr()->isNull( 'child.dateEnd');
$dates = $qb->expr()->orX($betweenDates, $endDateNull);
// take care of dateEnd if it's null
$qb->expr()->andX($dates);
问题是哪里条件不起作用而且选择仍然给我孩子不尊重日期条件 任何帮助将不胜感激。