recreate table test_err (id int);
insert into test_err (ID) values (1);
insert into test_err (ID) values (2);
select *
from test_err t
left join (select 1 id from rdb$database) a on a.id = t.id;
Result must be
ID ID
============ ============
1 1
2 <null>
But, result is
ID ID
============ ============
1 <null>
2 <null>
However, the second LEFT JOIN works fine
select *
from test_err t
left join (select 1 id from rdb$database) a on a.id = t.id
left join (select 2 id from rdb$database) b on b.id = t.id;
ID ID ID
============ ============ ============
1 <null> <null>
2 <null> 2
Description
Test case:
recreate table test_err (id int);
insert into test_err (ID) values (1);
insert into test_err (ID) values (2);
select *
from test_err t
left join (select 1 id from rdb$database) a on a.id = t.id;
Result must be
ID ID
============ ============
1 1
2 <null>
But, result is
ID ID
============ ============
1 <null>
2 <null>
However, the second LEFT JOIN works fine
select *
from test_err t
left join (select 1 id from rdb$database) a on a.id = t.id
left join (select 2 id from rdb$database) b on b.id = t.id;
ID ID ID
============ ============ ============
1 <null> <null>
2 <null> 2
"select
RESULT
from (select
'Well' as RESULT
from (select
'Works' as D
from RDB$DATABASE d) i
left join RDB$DATABASE on 1=0) j
left join RDB$DATABASE on 1=0"
returns 'well' - which is fine with me.
But
"select
RESULT
from (select
'Well' as RESULT
from (select
(select 'Does not work' from RDB$DATABASE) as D
from RDB$DATABASE d) i
left join RDB$DATABASE on 1=0) j
left join RDB$DATABASE on 1=0"
returns nothing - which I am pretty sure, is a bug...
Thomas Beckmann added a comment - 06/Aug/10 08:45 AM This might be due to the same reason:
"select
RESULT
from (select
'Well' as RESULT
from (select
'Works' as D
from RDB$DATABASE d) i
left join RDB$DATABASE on 1=0) j
left join RDB$DATABASE on 1=0"
returns 'well' - which is fine with me.
But
"select
RESULT
from (select
'Well' as RESULT
from (select
(select 'Does not work' from RDB$DATABASE) as D
from RDB$DATABASE d) i
left join RDB$DATABASE on 1=0) j
left join RDB$DATABASE on 1=0"
returns nothing - which I am pretty sure, is a bug...
"select
RESULT
from (select
'Well' as RESULT
from (select
'Works' as D
from RDB$DATABASE d) i
left join RDB$DATABASE on 1=0) j
left join RDB$DATABASE on 1=0"
returns 'well' - which is fine with me.
But
"select
RESULT
from (select
'Well' as RESULT
from (select
(select 'Does not work' from RDB$DATABASE) as D
from RDB$DATABASE d) i
left join RDB$DATABASE on 1=0) j
left join RDB$DATABASE on 1=0"
returns nothing - which I am pretty sure, is a bug...