DDC-2780: IS [NOT] NULL conditions with JOINs #3528

Open
doctrinebot opened this Issue Nov 6, 2013 · 7 comments

3 participants

@doctrinebot

Jira issue originally created by user maryo:

<?php
When trying to apply a [NOT] NULL condition on LEFT JOINed association. It ends with an error.

"Cannot add having condition on a non result variable."

$queryBuilder
->leftJoin('r.players', 'players', 'WITH', 'players = :player')
->where('players IS NULL');

It was working 3 month ago. But then, this commit broke it.

d9c1782

Or in other words if this is not a bug. How to test if the collection does not contain let's say a user with ID 5 (AND XX OR YY) with DQL/queryBuilder API? IN SQL I would just simply LEFT JOIN it with ON condition and then i would test it for existence using IS NULL in WHERE condition. How to do this using DQL when the pasted example ends with an error?

@doctrinebot

Comment created by maryo:

OK. players.id IS NULL (but it's uglier)

@doctrinebot

Comment created by Soullivaneuh:

r.players IS NULL works too.

But I don't understand why this will be not fixed. I agree, it's uglier.

@doctrinebot

Comment created by maryo:

I am checking the activity and it looks It was me who changed it to "Won't fix". If it's true then it was an accident. Sorry if I'm wrong.

@doctrinebot

Comment created by pejot:

Hi,

also experiencing this error. Worked fine with 2.4.7, now trying to migrate to 2.5.0 and getting this error. The problem is, even when I do select the variable to SELECT, still getting the error.

@doctrinebot

Comment created by mrthehud:

I'm seeing this too - but I actually think the "players.id IS NULL" is right - otherwise what you're really asking for is something like "COUNT(r.players) == 0" - which might cause problems when you combine the query with pagination (for instance, using the KNP Paginator in Symfony).

@doctrinebot

Comment created by benjamin:

Still no updates on this bug, two years after? I'm surprised that a potential bug introduced by a commit is left without any comment from the core team for so long.

@beberlei beberlei was assigned by doctrinebot Dec 6, 2015
@doctrinebot doctrinebot added the Bug label Dec 7, 2015
@kipelovets

Any news on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment