symfony - How to make JOIN with OR expression in DQL? -
here sql equivalent of expect doctrine:
select c.* comments c left join articles on a.id = c.articles_id or a.translation = c.articles_id c.published = 1 , c.language = a.language the problem cannot make doctrine generate join operation or supposed be. if execute query following querybuilder object:
$qb->select('c') ->from('project:comment', 'c') ->leftjoin('c.article', 'a', 'with', 'a = c.article or a.translation = c.article') ->where('c.published = true , c.language = a.language'); we receive following sql statement:
select ... comments c0_ left join articles a0_ on c0_.articles_id = a0_.id , ( a0_.id = c0_.articles_id or a0_.translation = c0_.profiles_id ) c0_.published = 1 , c0_.language = a0_.language which not same initial query, with operator seems add additional conditions basic 1 instead of replacing whole condition.
is there way force doctrine output need? know may use native sql doubt convenient querybuilder. maybe there way extend doctrine normal join on implementation instead of odd join with?
doctrine doesn't implement because (as far understand @ least) not considered optimized enough sql.
what intend appearantly done using union , other types of join.
Comments
Post a Comment