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

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

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

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

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

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

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
09.06.2002, 02:04:00
    #32032173
AlexeyEvt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли с помощью INNER OUTER JOIN связать с таблицей несколько подчиненых табл
Большое спасибо за ответ!

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

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


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