Hi there,

For bother mysql 4.1.7 and 4.0.18 on windows.
I had the following behavior when combining inner joins and right joins: 

 -- (1) I create a table A and insert some values in it
CREATE TABLE A (
  Id smallint,
  Name varchar(20)
) ;

INSERT INTO A VALUES (1,'Hello');
INSERT INTO A VALUES (2,'Good bye');
INSERT INTO A VALUES (3,'Foo');
INSERT INTO A VALUES (4,'Good Morning');

-- (2)  I create another table B
CREATE TABLE B ( 
  ID smallint 
) ;

-- (3) Naturally, a right join succeeds returning all 4 records in A
SELECT A.Id,A.Name 
FROM B RIGHT JOIN A ON A.Id=B.ID;

-- (4) I create another table C (Note that both B and C are empty)
CREATE TABLE C (
 ID smallint 
 ) ;

-- (5) I inner join B and C and then right join the result with A
SELECT A.Id,A.Name 
FROM   (B INNER JOIN C ON C.Id=B.Id)
       RIGHT JOIN A ON A.Id=B.Id;
--     PROBLEM: the result is an empty set though I should get
--     the 4 records in A


-- (6) Yet more weird is that I insert a value in B which
--     should not change the result of inner joining B and C
--     but....
INSERT INTO B VALUES (17);
SELECT A.Id,A.Name 
FROM   B INNER JOIN C ON C.Id=B.Id
       RIGHT JOIN A ON A.Id=B.Id;
--     PROBLEM: the result is the 4 records !!

Thanks for help
Sameh

Reply via email to