That's the same as SELECT b FROM Bill b LEFT JOIN b.favorites f WHERE f.user = :user OR f.user IS NULL
That is a problem, as it will hydrate `Bill` objects with incomplete associations. Turn it around: SELECT f FROM Favorite f WHERE f.id IN (SELECT f1.id FROM Bill b JOIN b.favorites f1 WHERE f1.user = :user OR f1.user IS NULL) Marco Pivetta http://twitter.com/Ocramius http://ocramius.github.com/ On Tue, Jun 27, 2017 at 7:58 AM, Joshua Wilson <[email protected]> wrote: > Actaully, based on your first response, I went back at looked at the > criteria builder even more and ended up messing around with it and got a > working example: > > $qb = $this->bill_repository->createQueryBuilder('b') > ->leftJoin('b.favorites', 'f'); > > $critera = new Criteria(); > $critera->where(Criteria::expr()->eq("f.user_id", $user->id)); > $critera->orWhere(Criteria::expr()->eq("f.user_id", null)); > $qb->addCriteria($critera); > > > On Tuesday, June 27, 2017 at 12:43:24 AM UTC-5, Marco Pivetta wrote: >> >> Could you make a more clear example with your currently entity >> definitions? Keep it minimal, but try showing what the expected result >> would be like >> >> Marco Pivetta >> >> http://twitter.com/Ocramius >> >> http://ocramius.github.com/ >> >> On Tue, Jun 27, 2017 at 7:40 AM, Joshua Wilson <[email protected]> wrote: >> >>> I have but I dont quite understand how to work with it, in an ideal >>> world i'd basically like something like... >>> >>> SELECT a.*, b.* FROM table a LEFT JOIN table b ON b.column = a.column >>> WITH b.other_column = 1; >>> >>> Basically, at the end of the day, I have a table full of items, users >>> can favorite those items, but I dont want users to see what each other have >>> favorited when I display the list of items, I only want the user making the >>> request to be able to see what items they have favorited. Granted I can >>> probably loop over the results from the query and check each record and >>> mark if it was favorited but I already have a one to many relationship >>> setup between items and favorites and it'd be really nice if I could just >>> return the single favorite record for the user who is looking at the list >>> of items >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "doctrine-user" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at https://groups.google.com/group/doctrine-user. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "doctrine-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/doctrine-user. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "doctrine-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/doctrine-user. For more options, visit https://groups.google.com/d/optout.
