Здравствуйте!

Насколько я знаю следующие 2 запроса должны выдавать одинаковый
результат:

1. select T1.id, T2.ID, TJ.IDS
   from T2, T1
   left join TJ on (T1.ID = TJ.ID)
   where (T2.ID = T1.ID)

2. select T1.id, T2.ID, TJ.IDS
   from T1, T2
   left join TJ on (T1.ID = TJ.ID)
   where (T2.ID = T1.ID)

(они отличаются второй строчкой: from ... )
однако второй запрос в столбце TJ.IDS выдает неправильный результат.
Это бага или так должно быть?

проверялось на Firebird-2.0.0.12710-0-Win32.exe от 4 июля.

вот скрипт для создания всего необходимого:


CREATE TABLE T1 (
    ID  INTEGER NOT NULL 
);

CREATE TABLE TJ (
    ID  INTEGER NOT NULL,
    IDS INTEGER NOT NULL
);

CREATE TABLE T2 (
    ID INTEGER NOT NULL 
);

commit;

INSERT INTO T1 (ID) VALUES (1);
INSERT INTO T1 (ID) VALUES (2);

INSERT INTO TJ (ID, IDS) VALUES (1, 1);
INSERT INTO TJ (ID, IDS) VALUES (2, 2);

INSERT INTO T2 (ID) VALUES (1);
INSERT INTO T2 (ID) VALUES (2);

commit;

-- 
С уважением Баязитов Марат
mailto:[EMAIL PROTECTED]



Ответить