Doctrine2ではQueryBuilderクラスを使用する必要があり、DQLのテーブル名とフィールドではなく、クラス名とプロパティを使用する必要があるため、使用しているDoctrineバージョン。したがって、テーブル フィールド名ではなく、クラス フィールド名に結合する必要があります。
innerJoin('t.request_details', 'r') // where request_details is a propery on Tester
また、それらを結合する場所 (where(t.id = r.tester_id)) は必要ありません。これは Doctrine によって管理され、エンティティが適切にマップされていれば機能します。
from 部分に request_details r も必要ありません。これも Doctrine が処理します。
また、from ではテーブル名ではなくクラス名を使用してください。
編集(getResults()の前にgetQuery()を忘れた):最終的に、クエリは次のようになります。
$queryBuilder = EntityManager::create(//em options)->createQueryBuilder();
$queryBuilder->select('t.department')
->from('Tester', 't')
->innerJoin('t.request_details', 'r') // request details is a propery on Tester, that maps to RequestDetails
->where('r.request_id = ?1')
->setParameter(1, 123);
Doctrine はこれを SQL に変換し、結合します。最後に、次のものも取得する必要があります。
$departments = $queryBuilder->getQuery()->getResult();
編集:Doctrine 1の場合、次のようなものが機能するはずです:
$q = Doctrine_Query::create()
->select('t.department')
->from('Tester t')
->innerJoin('t.request_details r') // request details is a propery on Tester, that maps to RequestDetails
->where('r.request_id = ?', 123);
$depts = $q->fetchArray();
私はDoctrine 1にあまり詳しくないので、詳細についてはこれを見てください:
http://docs.doctrine-project.org/projects/doctrine1/en/latest/en/manual/dql-doctrine-query-language .html