좌 조인 ON 조건 및 기타 조건 구문을 사용하여 독트린에서
저는 Symfony2에서 Dogrine의 쿼리 빌더를 사용하여 개체를 가져올 쿼리를 만들고 있습니다.
현재 코드는 다음과 같습니다.
$repository = $this->getDoctrine()->getRepository('AaaBundle:Application');
$queryBuilder = $repository->createQueryBuilder('a');
$queryBuilder
->addSelect('u')
->addSelect('i')
->orderBy('a.created_date', 'DESC')
->leftJoin('a.created_by', 'u')
->leftJoin('a.installations', 'i')
//->where('i.page = :page')
//->setParameter('page', $found)
;
이제 설치 여부에 관계없이 이를 사용하여 모든 페이지를 얻을 수 있습니다.하지만 저는 단지 그들과 함께 하고 싶습니다.$found
페이지를 사용할 수 있습니다(앱에 대한 설치가 있지만 다른 페이지에 있는 경우 설치가 가입되지 않습니다).where 절을 인용하지 않으면 페이지에 대한 설치가 있는 앱만 표시됩니다.페이지 설치 유무와 상관없이 모든 앱을 원합니다.
SQL에서 다음을 추가하면 얻을 수 있습니다.AND
합세하여
LEFT JOIN installations i ON a.id = i.app AND i.page = :page
이렇게 하면 페이지에 설치되어 있는 앱의 설치 정보를 얻지만 다른 페이지에 설치되어 있거나 아예 없는 앱의 열에는 null 값이 표시됩니다.
독트린에서 이것을 할 수 있는 방법이 있습니까? 아니면 각 응용 프로그램에 대한 모든 설치를 받은 다음 발견된 페이지를 php로 확인하는 것이 더 나을까요?
다음을 시도해 볼 수 있습니다.
use Doctrine\ORM\Query\Expr;
->leftJoin('a.installations', 'i', Expr\Join::WITH, 'i.page = :page')
->setParameter('page', $page)
문서에서 기능 leftJoin 참조: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/query-builder.html#high-level-api-methods
언급URL : https://stackoverflow.com/questions/19185587/left-join-on-condition-and-other-condition-syntax-in-doctrine
'programing' 카테고리의 다른 글
Android에서 모서리가 둥근 사용자 지정 대화 상자를 만드는 방법 (0) | 2023.09.17 |
---|---|
xml을 생성하는 가장 좋은 방법은? (0) | 2023.09.17 |
여러 개의 ajax 호출이 마지막 호출이 로드될 때까지 기다린 다음 실행 (0) | 2023.09.17 |
Chrome이 디버그 모드로 전환되지 않도록 하려면 어떻게 해야 합니까? (0) | 2023.09.12 |
DBMS_DATA_MINING.CREATE_MODEL은 11.2.0.1.0 64b에서 "ORA-40103: 잘못된 대/소문자-ID 열: TID"를 발생시키지만 10g에서는 정상입니다. (0) | 2023.09.12 |