powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли с помощью INNER OUTER JOIN связать с таблицей несколько подчиненых табл
7 сообщений из 7, страница 1 из 1
Можно ли с помощью INNER OUTER JOIN связать с таблицей несколько подчиненых табл
    #32031671
AlexeyEvt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Subj
...
Рейтинг: 0 / 0
Можно ли с помощью INNER OUTER JOIN связать с таблицей несколько подчиненых табл
    #32031672
C/\OH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, ответ зависит от конкретного примера. Вообще-то JOIN бывает либо INNER либо OUTER. Что именно интересует?

Слон
...
Рейтинг: 0 / 0
Можно ли с помощью INNER OUTER JOIN связать с таблицей несколько подчиненых табл
    #32031674
AlexeyEvt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть дерево из элементов различной структуры, но у каждого элемента есть свойства: ID, Наименование, Тип элемента. В зависимости от Типа элемент обладает рядом других свойств (или не имеет дополнительных свойств).
Набор свойств для каждого _типа_ элементов храниться в отдельной таблице:

+--------------+
| Элемент |
+--------------+
+->| ID элемента |<-+
| | Наименование | |
| | Тип | |
| +--------------+ |
| |
+-------------+ | | +-------------+
| Тип 1(Точка)| | | | Тип 2 (???) |
+-------------+ | | +-------------+
| ID элемента |>-+ +-<| ID элемента |
| X | | Заголовок |
| Y | | ... |
| Color | +-------------+
+-------------+

Хотелось бы (из Delphi) выбрать все элементы, со ВСЕМИ свойствами, а затем в цикле (в программе) их обрабатывать.
...
Рейтинг: 0 / 0
Можно ли с помощью INNER OUTER JOIN связать с таблицей несколько подчиненых табл
    #32031675
AlexeyEvt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Можно ли с помощью INNER OUTER JOIN связать с таблицей несколько подчиненых табл
    #32031676
C/\OH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, это немного заковыристо получится.

Во-первых, надо понять, что возвращены будут результаты всех колонок.

То есть в виде:

ElementID, Name, Type, Type1_X, Type1_Y, Type2_..., ....

Если Type = 'Type1' тогда Type1_X & Type2_Y будут иметь значения, а поля Type2_... будут иметь значения NULL, и наоборот, если Type = 'Type2'

Но вот пример такого SELECTа.

Код:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
[fixed]
SELECT 
     el.ID AS ElementID, 
     el.Name, 
     el.Type, 
     CASE WHEN el.Type = 'Type1' THEN t1.X ELSE NULL END AS Type1_X, 
     CASE WHEN el.Type = 'Type1' THEN t1.Y ELSE NULL END AS Type1_Y,
     CASE WHEN el.Type = 'Type2' THEN t2.... ELSE NULL END AS Type2_...
FROM Elements el
     LEFT OUTER JOIN Type1 t1
          ON el.ID = t1.ID
     LEFT OUTER JOIN Type2 t2
          ON el.ID = t2.ID
     
[/fixed]
...
Рейтинг: 0 / 0
Можно ли с помощью INNER OUTER JOIN связать с таблицей несколько подчиненых табл
    #32032173
AlexeyEvt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо за ответ!

Только я не понял, зачем CASE'ы вставлять, ведь сервер сам NULL подставляет, где надо?
...
Рейтинг: 0 / 0
Можно ли с помощью INNER OUTER JOIN связать с таблицей несколько подчиненых табл
    #32032371
Фотография Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что, если тип будет 1, но в таблице 2 будут данные с таким ID, то тогда данные из обеих таблиц попадут в результат.

Слон
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли с помощью INNER OUTER JOIN связать с таблицей несколько подчиненых табл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]