![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа со справочниками [D7, MSSQL]
Explorer © (2004-11-16 12:47:00)Мастера!
Как правильно организовать связь такого вида
(сейчас вот так):
Таблица1-(...,Id_table2,Id_table2_1...)- карточка сотрудника
Таблица2-(ID_table2,NameDolgnost,....) - список должностей
В Id_table2 - постоянная должность (not Null) - из таблицы2
в Id_table2_1 - замещаемая должность (может NULL) - из таблицы1
Правильно ли организована связь?
И как при этом сформировать запрос, чтобы отображались замещаемые должности (если они есть)?
vuk (2004-11-16 14:59:00) [1]join со справочником нужно делать два раза. Один раз inner для постоянной должности, а второй раз - left, для замещаемой. Что касается организаци данных, то тут, действительно, все зависит от исходной задачи. Например, если замещаемых должностей может быть не одна, то схема будет другой.
Наталия (2004-11-16 14:27:00) [2]Так ты не со справочником профессий left join делай, а таблицу staff с ней же.
Explorer (2004-11-16 14:24:00) [3]Вывести получилось только (Id_table2_1 + Id_table2 - одной колонкой),т.е.
Иванов | инженер
Сидоров|начальник
Иванов |зам. начальника
select t.TabNum,
t3.NameProfession
from Staff as t left join SprProfession as t3
on t.id_profession2=t3.id_profession
or t.id_profession=t3.id_profession
ORDER BY t.TabNum ASC
а вот как вывести вот так:
Иванов | инженер |зам. начальника
Сидоров |начальник |
Соловьев (2004-11-16 13:35:00) [4]QueryAnalizer+F1 Смотрим left join.
Explorer (2004-11-16 13:32:00) [5]а можно пример?
Соловьев (2004-11-16 12:50:00) [6]
> Правильно ли организована связь?
Это может только сказать разработчик: наверное да, если она удовлетваряет требованиям ПО.
> И как при этом сформировать запрос, чтобы отображались замещаемые
> должности (если они есть)?
left join