I would like to have a query condition based on a property of a node selected by a left outer join. If the left joined node exists, I have no problem. If the left joined node does not exist, I cannot use the property in a constraint.

I tried doing something like this:

SELECT *
FROM [m:foo] AS foo
LEFT OUTER JOIN [m:foochild] AS maybe ON ISSAMENODE(maybe,foo,'fc1')
WHERE maybe.bar <> 'X'

I understand that this is like SQL and the where clause will evaluate to false if maybe.bar is null. So I tried this:

SELECT *
FROM [m:foo] AS foo
LEFT OUTER JOIN [m:foochild] AS maybe ON ISSAMENODE(maybe,foo,'foo')
WHERE maybe.bar IS NULL OR maybe.bar <> 'X'

But that also returns null if maybe is null. So I tried:

SELECT *
FROM [m:foo] AS foo
LEFT OUTER JOIN [m:foochild] AS maybe ON ISSAMENODE(maybe,foo,'foo')
WHERE NOT maybe.bar IS NOT NULL OR maybe.bar <> 'X'

But that does not work either.

Is there a way to get something to evaluate to true if a left outer joined node is null?

--
Stephen Byrne
[email protected]

Reply via email to