Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос объединение  [new]
Diminator
Member

Откуда:
Сообщений: 42
Подскажите, пожалуйста, запрос на объединение данных. Имею следующие таблицы:


Никак не могу запрос написать который вернул бы человеческие данные а не ID при выборке из таблицы Т_Заказы.
Помогите, пожалуйста.

К сообщению приложен файл. Размер - 56Kb
7 сен 14, 01:20    [16545422]     Ответить | Цитировать Сообщить модератору
 Re: Запрос объединение  [new]
Diminator
Member

Откуда:
Сообщений: 42
Извините, лопухнулся. Запрос к T_заказ должен вернуть:
Т_Заказ_ID_Клиент = Т_Контакты.ПонятноеИмя
Т_Заказ_ID_Брокер = Т_Контакты.ПонятноеИмя (Через таблицу Т_Брокер)
Т_Заказ_ID_Брокер = Т_Контакты.ПонятноеИмя (через таблицы Т_Завод и Т_Компании).

Исправленная картинка:

К сообщению приложен файл. Размер - 57Kb
7 сен 14, 01:32    [16545449]     Ответить | Цитировать Сообщить модератору
 Re: Запрос объединение  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Ну и где ваш вариант, который вы написали, но, который возвращает не то, что нужно!?
7 сен 14, 12:33    [16545862]     Ответить | Цитировать Сообщить модератору
 Re: Запрос объединение  [new]
Diminator
Member

Откуда:
Сообщений: 42
Пробую следующим образом (уверен что не правильно):

SELECT dbo.Т_Заказ.*, dbo.Т_Завод.НазваниеЗавода AS Завод, dbo.Т_Контакты.ПонятноеИмя AS КонтактЗавод, dbo.Т_Брокер.ПонятноеИмя AS Брокер,
dbo.Т_Контакты.ПонятноеИмя AS Клиент
FROM dbo.Т_Заказ INNER JOIN
dbo.Т_Завод ON dbo.Т_Заказ.ID_Завод = dbo.Т_Завод.ID_Завод INNER JOIN
dbo.Т_Брокер ON dbo.Т_Заказ.ID_Брокер = dbo.Т_Брокер.ID_Брокер INNER JOIN
dbo.Т_Компании ON dbo.Т_Завод.ID_Компании = dbo.Т_Компании.ID_Компании INNER JOIN
dbo.Т_Контакты ON dbo.Т_Заказ.ID_Клиент = dbo.Т_Контакты.ID_Контакт AND dbo.Т_Брокер.ID_Контакт = dbo.Т_Контакты.ID_Контакт AND
dbo.Т_Компании.ID_Компании = dbo.Т_Контакты.ID_Компании

Вроде получаю результат но не могу вывксти контакт завода.
7 сен 14, 15:04    [16546028]     Ответить | Цитировать Сообщить модератору
 Re: Запрос объединение  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
Diminator
Вроде получаю результат но не могу вывксти контакт завода.
Вам нужно сделать ещё одну связку с dbo.Т_Контакты по полю ID_КонтактЗавода

Для этого нужно использовать алиасы. И вообще, используйте алиасы всегда; и не конструируйте запросы в констукторе, пишите текст программ руками, а не мышкой.

Что то типа того:
SELECT *
FROM dbo.Т_Заказ o
	INNER JOIN dbo.Т_Завод z ON o.ID_Завод = z.ID_Завод 
	INNER JOIN dbo.Т_Брокер b ON o.ID_Брокер = b.ID_Брокер 
	INNER JOIN dbo.Т_Компании c ON z.ID_Компании = c.ID_Компании 
	INNER JOIN dbo.Т_Контакты co_o ON o.ID_КонтактЗавода = co_o.ID_Контакт 
	INNER JOIN dbo.Т_Контакты co_b ON b.ID_Контакт = co_b.ID_Контакт 
 

Только у вас схема данных непонятная, так что дальше уже сами.
7 сен 14, 16:11    [16546097]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить