내가 (실패) 시도하고 적용 할 때 :서버 충돌이 수행하는 복잡한 교리의 하위 쿼리
가 DQL에서SELECT AVG (DISTINCT(DATEDIFF(E1.updated_date, E2.updated_date))) FROM
(SELECT DISTINCT e1_.updated_date, e2_.id as id FROM engineering_details e1_ INNER JOIN engineerings e2_ ON e1_.engineering_id = e2_.id INNER JOIN projects p4_ ON e2_.project_id = p4_.id INNER JOIN `lines` l5_ ON e2_.line_id = l5_.id INNER JOIN statuses s6_ ON e1_.to_status_id = s6_.id WHERE e2_.Rev_asignee = 'Test User 1 [Eduardo Monto]' AND p4_.id = 8 AND l5_.id = 1 AND e2_.out_of_plan = 0 AND e1_.updated_date >= '2014-01-01' AND e1_.updated_date <= '2014-06-11' AND s6_.id = 16) as E1,
(SELECT DISTINCT e1_.updated_date, e2_.id as id FROM engineering_details e1_ INNER JOIN engineerings e2_ ON e1_.engineering_id = e2_.id INNER JOIN projects p4_ ON e2_.project_id = p4_.id INNER JOIN `lines` l5_ ON e2_.line_id = l5_.id INNER JOIN statuses s6_ ON e1_.to_status_id = s6_.id WHERE e2_.Rev_asignee = 'Test User 1 [Eduardo Monto]' AND p4_.id = 8 AND l5_.id = 1 AND e2_.out_of_plan = 0 AND e1_.updated_date >= '2014-01-01' AND e1_.updated_date <= '2014-06-11' AND s6_.id = 38) AS E2
WHERE E1.id = E2.id
지금까지 내가 '번역'한에 내가 무슨 생각을가 DQL의를 위의 SQL과 동일합니다. createQueryBuilder
대신 createQuery
을 사용했지만 '서브 쿼리'를 적용하는 유일한 방법 이었으므로 대신 createQueryBuilder
으로 변경되었습니다. createQuery
를 사용할 때 나는 그래서
'을 (를) 찾을 수 없습니다 CLASS ('의 오류, 내가 뭘 가지고
$qb = $em->createQueryBuilder();
$query = $qb->select('SELECT AVG(DISTINCT(DATEDIFF(E1.updatedDate, E2.updatedDate))) AS AVGTREV')
->from($qb->select('SELECT DISTINCT T1.updatedDate, eng.id as id HW\Bundle\EngMgmtBundle\Entity\EngineeringDetail T1 INNER JOIN T1.engineering eng INNER JOIN eng.project p INNER JOIN eng.line l INNER JOIN T1.toStatus ts WHERE eng.ReviewAsignee = :eng AND ts.id = 16
AND p.id = :project_id AND l.id = :line_id AND eng.outOfPlan = 0 AND T1.updatedDate >= :period_from AND T1.updatedDate <= :period_to'), 'E1')
->from($qb->select('SELECT DISTINCT T2.updatedDate, eng.id as id HW\Bundle\EngMgmtBundle\Entity\EngineeringDetail T2 INNER JOIN T2.engineering eng INNER JOIN eng.project p INNER JOIN eng.line l INNER JOIN T2.toStatus ts WHERE eng.ReviewAsignee = :eng AND ts.id = 38
AND p.id = :project_id AND l.id = :line_id AND eng.outOfPlan = 0 AND T2.updatedDate >= :period_from AND T1.updatedDate <= :period_to'), 'E2')
->setParameters(array('project_id' => $project, 'line_id' => $line, 'eng' => $user->getName(), 'period_from' => $period_from, 'period_to' => $period_to))
->getQuery();
$entities = $query->getResult();
내가 그러나 내가 할 수없는 '에서'2를 사용하지 않아야 알고 있어요 나는 인터페이스를 통해 쿼리를 만들려고 할 때 주요 선택은 두 개의 하위 쿼리에서 결과를 사용하기 때문에, 그렇지 않으면 그것을 할 수있는 방법을 찾을 것 같다. 그래서
을, 그것은 그것을 유지, 오류가 발생하지 않지만, '로딩'을 클릭 한 다음 '웹 사이트를 사용할 수 없음'으로 변경합니다 ... 문의하신 내용이 확실합니다. 무엇이 잘못 되었나요?