powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как построить запрос?
9 сообщений из 9, страница 1 из 1
Как построить запрос?
    #32333100
miky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос наверное глупый, но интересно, как это делается с точки зрения теории проектирования БД.

Имеем две таблици, связь один-много. Лучше, наверное, на примере объяснить, короче есть две сущности Менеджеры и Клиенты. У каждного Менеджера один или более Клиента. А у каждого клиента может быть один или НОЛЬ Менеджеров.
На сколько я понимаю в ситуации, когда у Клиента нет Менеджера внешний ключ Клиента связывающего в Менеджером должен быть NULL (согласно теории. Нет значения - NULL).

Если так, то как составить запрос выводяший всех клиентов и их менеджеров. Пусть если у Клиента нет Меджера, у него выводится NULL но должен выводится обязательно.

Спасибо.
...
Рейтинг: 0 / 0
Как построить запрос?
    #32333149
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В какой БД?

Например так:
Код: plaintext
1.
2.
select * 
from Client C, Manager M
where (C.ManagerID = M.ID or C.ManagerID is null)


-- Tygra's --
...
Рейтинг: 0 / 0
Как построить запрос?
    #32333361
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
select * 
from Client C left outer join Manager M C.ManagerID = M.ID
...
Рейтинг: 0 / 0
Как построить запрос?
    #32334369
Фотография babaEGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть еще функция isnull
(заменяет null-значение поля на нечто (а-ля 0 или - )
...
Рейтинг: 0 / 0
Как построить запрос?
    #32334639
Фотография DarkCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miky писал:На сколько я понимаю в ситуации, когда у Клиента нет Менеджера внешний ключ Клиента связывающего в Менеджером должен быть NULL
Это уже отход от реляционности. Не дело это.
Лучше создать Менеджера №0 "Менеджер никакой" например, и повесить на него всех клиентов, у кого ненеджера нету.
И запрос тады вообще элементарный...

...
Рейтинг: 0 / 0
Как построить запрос?
    #32335542
VikingSan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если по манагеру нужна минимальная инф. и бд оракл:
Код: plaintext
1.
2.
select c.*
,(SELECT m.NAME FROM Manager M WHERE M.ID = C.ManagerID) manager 
from Client C 
...
Рейтинг: 0 / 0
Как построить запрос?
    #32335821
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне тоже не нравится структура с Null - отношения между сущностями нет, а значение (Null) есть. К тому же с этими null всегда какой-нибудь геморр выходит. Надо, наверное, стараться без них обходмиться.
...
Рейтинг: 0 / 0
Как построить запрос?
    #32448132
Matt Juntunen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант - добавить в список менеджеров строку "Нет менеджера" и писать "под нее" всех клиентов без менеджера. По крайней мере связь не нарушаеться.
...
Рейтинг: 0 / 0
Как построить запрос?
    #32448156
e_basil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помимо конкретных значений (менеджеров) добавлдяем значение
0 - "не определено"
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как построить запрос?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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