Doctrine 2 QueryBuilder左连接子查询

时间:2015-07-02 13:25:26

标签: php mysql symfony doctrine-orm doctrine

我想将此查询转换为Doctrine 2查询生成器。

SELECT st.id,
       serwis2.uwagi_dla_serwisu,
       serwis2.data_wyslania,
       serwis2.data_powrotu
FROM st left join
     (select * from serwis where serwis.data_powrotu is null) serwis2
on serwis2.st_id = st.id

在MySQL中,这个查询正是我需要的,但我不知道如何将其转换为QueryBuilder。

可以在QueryBuilder中的select子查询左边连接吗?

1 个答案:

答案 0 :(得分:0)

我有点生疏,需要使用实际的数据库进行迭代,但这可能会帮助您入门......类似于:

$qb->select('st.id', 'serwis2.uwagi_dla_serwisu', 'serwis2.data_wyslania','serwis2.data_powrotu')
    ->from('st')
    ->addSelect('(SELECT serwis.* FROM serwis WHERE serwis.powrotu IS NULL) AS serwis2')
    ->leftJoin('st.id', 'serwis2', 'WITH', 'st.id = serwis2.st_id');

这可能不是您可以复制或粘贴的内容,但访问query builder reference应该会有所帮助。