Использую Access2003
Есть запрос который включает в себя два других запроса:
Запит_Фото_Частина_1:
SELECT Фото.OBJECTID, Фото.Шлях, IIf(Звязки_між_таблицями.ID_Ріка Is Null,Null,Full_Ріки.Код) & IIf(Звязки_між_таблицями.ID_канал Is Null,Null,Full_Канали.Код) & IIf(Звязки_між_таблицями.ID_міст Is Null,Null,Full_Мости.Код) & IIf(Звязки_між_таблицями.ID_Укрплення_берега Is Null,Null,Full_Укріплення_берегів.Код) & IIf(Звязки_між_таблицями.ID_Водосховище Is Null,Null,Full_Водосховища.Код) & IIf(Звязки_між_таблицями.ID_Льодовий_затор Is Null,Null,Full_Льодові_затори_історія.Код) & IIf(Звязки_між_таблицями.ID_АВС Is Null,Null,Full_АВС.Код) & IIf(Звязки_між_таблицями.ID_Дамба Is Null,Null,Full_Дамби.Код) & IIf(Звязки_між_таблицями.ID_Шлюз Is Null,Null,Full_Шлюзи.Код) & IIf(Звязки_між_таблицями.ID_Ручний_водомірний_пост Is Null,Null,Full_Ручні_водомірні_пости.Код) & IIf(Звязки_між_таблицями.ID_Реконструкція Is Null,Null,Full_Реконструкції.Код) AS [Код об’єкта], IIf(Звязки_між_таблицями.ID_Ріка Is Null,Null,Full_Ріки.[Повна назва]) & IIf(Звязки_між_таблицями.ID_канал Is Null,Null,Full_Канали.[Повна назва]) & IIf(Звязки_між_таблицями.ID_міст Is Null,Null,Full_Мости.[Повна назва]) & IIf(Звязки_між_таблицями.ID_Укрплення_берега Is Null,Null,Full_Укріплення_берегів.[Повна назва]) & IIf(Звязки_між_таблицями.ID_Водосховище Is Null,Null,Full_Водосховища.[Повна назва]) & IIf(Звязки_між_таблицями.ID_Льодовий_затор Is Null,Null,Full_Льодові_затори_історія.[Повна назва]) & IIf(Звязки_між_таблицями.ID_АВС Is Null,Null,Full_АВС.[Повна назва]) & IIf(Звязки_між_таблицями.ID_Дамба Is Null,Null,Full_Дамби.[Повна назва]) & IIf(Звязки_між_таблицями.ID_Шлюз Is Null,Null,Full_Шлюзи.[Повна назва]) & IIf(Звязки_між_таблицями.ID_Ручний_водомірний_пост Is Null,Null,Full_Ручні_водомірні_пости.[Повна назва]) & IIf(Звязки_між_таблицями.ID_Реконструкція Is Null,Null,Full_Реконструкції.[Повна назва]) AS Об’єкт, Фото.Примітка
FROM Фото LEFT JOIN (Full_Мости RIGHT JOIN (Full_Дамби RIGHT JOIN (Full_Ручні_водомірні_пости RIGHT JOIN (Full_Водосховища RIGHT JOIN (Full_Реконструкції RIGHT JOIN (Full_Льодові_затори_історія RIGHT JOIN (Full_Шлюзи RIGHT JOIN (Full_Укріплення_берегів RIGHT JOIN (Full_канали RIGHT JOIN (Full_Ріки RIGHT JOIN (Full_АВС RIGHT JOIN Звязки_між_таблицями ON Full_АВС.OBJECTID=Звязки_між_таблицями.ID_АВС) ON Full_Ріки.OBJECTID=Звязки_між_таблицями.ID_Ріка) ON Full_канали.OBJECTID=Звязки_між_таблицями.ID_канал) ON Full_Укріплення_берегів.OBJECTID=Звязки_між_таблицями.ID_Укрплення_берега) ON Full_Шлюзи.OBJECTID=Звязки_між_таблицями.ID_Шлюз) ON Full_Льодові_затори_історія.OBJECTID=Звязки_між_таблицями.ID_Льодовий_затор) ON Full_Реконструкції.OBJECTID=Звязки_між_таблицями.ID_Реконструкція) ON Full_Водосховища.OBJECTID=Звязки_між_таблицями.ID_Водосховище) ON Full_Ручні_водомірні_пости.OBJECTID=Звязки_між_таблицями.ID_Ручний_водомірний_пост) ON Full_Дамби.OBJECTID=Звязки_між_таблицями.ID_Дамба) ON Full_Мости.OBJECTID=Звязки_між_таблицями.ID_міст) ON Фото.OBJECTID=Звязки_між_таблицями.ID_Фото
WHERE (((Звязки_між_таблицями.ID) Is Not Null)) Or (((Звязки_між_таблицями.ID_Ріка) Is Not Null)) Or (((Звязки_між_таблицями.ID_канал) Is Not Null)) Or (((Звязки_між_таблицями.ID_міст) Is Not Null)) Or (((Звязки_між_таблицями.ID_Укрплення_берега) Is Not Null)) Or (((Звязки_між_таблицями.ID_Водосховище) Is Not Null)) Or (((Звязки_між_таблицями.ID_Льодовий_затор) Is Not Null)) Or (((Звязки_між_таблицями.ID_АВС) Is Not Null)) Or (((Звязки_між_таблицями.ID_Дамба) Is Not Null)) Or (((Звязки_між_таблицями.ID_Шлюз) Is Not Null)) Or (((Звязки_між_таблицями.ID_Ручний_водомірний_пост) Is Not Null)) Or (((Звязки_між_таблицями.ID_Реконструкція) Is Not Null));
Запит_Фото_Частина_2:
SELECT Документація.OBJECTID, IIf([Звязки_між_таблицями].[ID_Гребля] is null,null,[Full_Греблі].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Польдер] is null,null,[Full_Польдери].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Насосна_станція] is null,null,[Full_Насосні_станції].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Обслуговуюча_організація] is null,null,[Full_Обслуговуючі_організації].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Населений_пункт] is null,null,[Full_Населені_пункти].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Дорога] is null,null,[Full_Дороги].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Історія_затоплення_польдера] is null,null,[Full_Затоплення_польдерів_історія].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Зміна_на_дамбі] is null,null,[Full_Зміни_на_дамбах].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Пошкодження_дамби] is null,null,[Full_Пошкодження_дамб].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Водовипуск] is null,null,[Full_Водовипуски].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Водозлив] is null,null,[Full_Водозливи].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Переїзд] is null,null,[Full_Переїзди].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Укріплення_дамби] is null,null,[Full_Укріплення_дамб].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Насос] is null,null,[Full_Насоси].[Повна назва]) & IIf([Звязки_між_таблицями].[ID_Вимірювальний_параметер] is null,null,[Full_Вимірювані_параметри].[Повна назва]) AS Об’єкт, IIf([Звязки_між_таблицями].[ID_Гребля] is null, null, [Full_Греблі].[Код]) & IIf([Звязки_між_таблицями].[ID_Польдер] is null, null, [Full_Польдери].[Код]) & IIf([Звязки_між_таблицями].[ID_Насосна_станція] is null, null, [Full_Насосні_станції].[Код]) & IIf([Звязки_між_таблицями].[ID_Обслуговуюча_організація] is null, null, [Full_Обслуговуючі_організації].[Код]) & IIf([Звязки_між_таблицями].[ID_Населений_пункт] is null, null, [Full_Населені_пункти].[Код]) & IIf([Звязки_між_таблицями].[ID_Дорога] is null, null, [Full_Дороги].[Код]) & IIf([Звязки_між_таблицями].[ID_Історія_затоплення_польдера] is null, null, [Full_Затоплення_польдерів_історія].[Код]) & IIf([Звязки_між_таблицями].[ID_Зміна_на_дамбі] is null, null, [Full_Зміни_на_дамбах].[Код]) & IIf([Звязки_між_таблицями].[ID_Пошкодження_дамби] is null, null, [Full_Пошкодження_дамб].[Код]) & IIf([Звязки_між_таблицями].[ID_Водовипуск] is null, null, [Full_Водовипуски].[Код]) & IIf([Звязки_між_таблицями].[ID_Водозлив] is null, null, [Full_Водозливи].[Код]) & IIf([Звязки_між_таблицями].[ID_Переїзд] is null, null, [Full_Переїзди].[Код]) & IIf([Звязки_між_таблицями].[ID_Укріплення_дамби] is null, null, [Full_Укріплення_дамб].[Код]) & IIf([Звязки_між_таблицями].[ID_Насос] is null, null, [Full_Насоси].[Код]) & IIf([Звязки_між_таблицями].[ID_Вимірювальний_параметер] is null, null, [Full_Вимірювані_параметри].[Код]) AS [Код Об’єкта], Документація.Шлях, Документація.Примітка
FROM Документація LEFT JOIN (Full_Пошкодження_дамб RIGHT JOIN (Full_Водозливи RIGHT JOIN (Full_Затоплення_польдерів_історія RIGHT JOIN (Full_Обслуговуючі_організації RIGHT JOIN (Full_Дороги RIGHT JOIN (Full_Переїзди RIGHT JOIN (Full_Зміни_на_дамбах RIGHT JOIN (Full_Вимірювані_параметри RIGHT JOIN (Full_Греблі RIGHT JOIN (Full_Водовипуски RIGHT JOIN (Full_Польдери RIGHT JOIN (Full_Укріплення_дамб RIGHT JOIN (Full_Насосні_станції RIGHT JOIN (Full_Насоси RIGHT JOIN (Full_Населені_Пункти RIGHT JOIN Звязки_між_таблицями ON Full_Населені_Пункти.OBJECTID = Звязки_між_таблицями.ID_Населений_пункт) ON Full_Насоси.OBJECTID = Звязки_між_таблицями.ID_Насос) ON Full_Насосні_станції.OBJECTID = Звязки_між_таблицями.ID_Насосна_станція) ON Full_Укріплення_дамб.OBJECTID = Звязки_між_таблицями.ID_Укріплення_дамби) ON Full_Польдери.OBJECTID = Звязки_між_таблицями.ID_Польдер) ON Full_Водовипуски.OBJECTID = Звязки_між_таблицями.ID_Водовипуск) ON Full_Греблі.OBJECTID = Звязки_між_таблицями.ID_Гребля) ON Full_Вимірювані_параметри.OBJECTID = Звязки_між_таблицями.ID_Вимірювальний_параметер) ON Full_Зміни_на_дамбах.OBJECTID = Звязки_між_таблицями.ID_Зміна_на_дамбі) ON Full_Переїзди.OBJECTID = Звязки_між_таблицями.ID_Переїзд) ON Full_Дороги.OBJECTID = Звязки_між_таблицями.ID_Дорога) ON Full_Обслуговуючі_організації.OBJECTID = Звязки_між_таблицями.ID_Обслуговуюча_організація) ON Full_Затоплення_польдерів_історія.OBJECTID = Звязки_між_таблицями.ID_Історія_затоплення_польдера) ON Full_Водозливи.OBJECTID = Звязки_між_таблицями.ID_Водозлив) ON Full_Пошкодження_дамб.OBJECTID = Звязки_між_таблицями.ID_Пошкодження_дамби) ON Документація.OBJECTID = Звязки_між_таблицями.ID_Документ
WHERE (Звязки_між_таблицями.ID_Гребля Is Not Null) OR (Звязки_між_таблицями.ID_Польдер Is Not Null) OR (Звязки_між_таблицями.ID_Насосна_станція Is Not Null) OR (Звязки_між_таблицями.ID_Обслуговуюча_організація Is Not Null) OR (Звязки_між_таблицями.ID_Населений_пункт Is Not Null) OR (Звязки_між_таблицями.ID_Дорога Is Not Null) OR (Звязки_між_таблицями.ID_Історія_затоплення_польдера Is Not Null) OR (Звязки_між_таблицями.ID_Зміна_на_дамбі Is Not Null) OR (Звязки_між_таблицями.ID_Пошкодження_дамби Is Not Null) OR (Звязки_між_таблицями.ID_Гребля Is Not Null) OR (Звязки_між_таблицями.ID_Польдер Is Not Null) OR (Звязки_між_таблицями.ID_Насосна_станція Is Not Null) OR (Звязки_між_таблицями.ID_Обслуговуюча_організація Is Not Null) OR (Звязки_між_таблицями.ID_Населений_пункт Is Not Null) OR (Звязки_між_таблицями.ID_Дорога Is Not Null) OR (Звязки_між_таблицями.ID_Історія_затоплення_польдера Is Not Null) OR (Звязки_між_таблицями.ID_Зміна_на_дамбі Is Not Null) OR (Звязки_між_таблицями.ID_Пошкодження_дамби Is Not Null) OR (Звязки_між_таблицями.ID_Водовипуск Is Not Null) OR (Звязки_між_таблицями.ID_Водозлив Is Not Null) OR (Звязки_між_таблицями.ID_Переїзд Is Not Null) OR (Звязки_між_таблицями.ID_Укріплення_дамби Is Not Null) OR (Звязки_між_таблицями.ID_Насос Is Not Null) OR (Звязки_між_таблицями.ID_Вимірювальний_параметер Is Not Null);
Обєдиняет их запрос Full_Фото:
SELECT OBJECTID, [Код об’єкта], [Об’єкт], Шлях, Примітка
FROM Запит_Фото_Частина_1
UNION ALL SELECT OBJECTID, [Код об’єкта], [Об’єкт], Шлях, Примітка
FROM Запит_Фото_Частина_2;
У всех таблицах только по несколько записей, но грузится невероятно долго (представляю что будет когда в таблицах будут тысячи записей).
Подскажыте пожалуста.
Спасибо за внимание.