Hello, All!
Хотелось поиграться и сравнить
Попробовал сделать аналог обычного inner join / left join (на этих таблицах
разницы нет (not null, unique))
select v.* from dic_attr_values v, ( select title from dic_attr a where
a.id = v.id_a) as a2(title)
-> error: unknown column v.id_a
Понял, если бы было unknown table v, но...
Значит так нельзя. Жаль...
Попробуем через гланды:
=========Beginning of the citation==============
select distinct v2.*, a2.* from dic_attr_values v2,
( select a.title, v.id_a from dic_attr a, dic_attr_values v where a.id =
v.id_a)
as a2(title, id_a) where v2.id_a = a2.id_a
=========The end of the citation================
Результат такой же как нормальный join, но чтения зашкалили
=========Beginning of the citation==============
select distinct v2.*, a2.* from dic_attr_values v2,
( select a.title, v.id_a, v.id_v from dic_attr a, dic_attr_values v where
a.id = v.id_a)
as a2(title, id_a, id_v) where v2.id_a = a2.id_a and v2.id_v = a2.id_v
=========The end of the citation================
Меньше чтений ,но все равно многовато.
=========Beginning of the citation==============
Адаптированный план
PLAN SORT (JOIN (A2 A NATURAL, A2 V INDEX (FK_DIC_ATTR_VALUES), V2 INDEX
(PK_DIC_ATTR_VALUES)))
=========The end of the citation================
зачем два раза по A2 бежать ?
Таблички - 5 строк и 5x5 строк, останки от старой попытки решить задачу
Эйнштейна еще на demo.ru :-)
=========Beginning of the citation==============
CREATE TABLE DIC_ATTR (
ID T_ID, /* smallint*/
TITLE T_DESCR /* какая-то небольшая строка */
);
ALTER TABLE DIC_ATTR ADD CONSTRAINT PK_DIC_ATTR PRIMARY KEY (ID);
CREATE TABLE DIC_ATTR_VALUES (
ID_A T_ID,
ID_V T_ID,
TITLE T_DESCR
);
ALTER TABLE DIC_ATTR_VALUES ADD CONSTRAINT PK_DIC_ATTR_VALUES PRIMARY KEY
(ID_A, ID_V);
ALTER TABLE DIC_ATTR_VALUES ADD CONSTRAINT FK_DIC_ATTR_VALUES FOREIGN KEY
(ID_A) REFERENCES DIC_ATTR (ID);
=========The end of the citation================
FB2 rc2
После заявлений о поддержке derived tables в release notes, думал что такие
вырожденные примеры Firebird отщелкает.
Или это я в 4 часа ночи выродился и нифига не понимаю?
--
WinAMP://none: WinAMP is suffocated
http://Arioch.nm.ru/FL/Fidolook_SL.png
Mail: the)under(Arioch)at(nm)dot(ru ICQ: xmpp:[EMAIL PROTECTED]
--~--~---------~--~----~------------~-------~--~----~
-~----------~----~----~----~------~----~------~--~---