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

Откуда:
Сообщений: 37
Добрый день.
Вопрос в следующем:
есть таблицы в базе данных:

USER
----------------------------------
id | Name | Surname |
----------------------------------
12 Дмитрий Иванов
13 Андрей Петров
14 Федор Сидоров
----------------------------------


INFO
------------------------------------------------------------------------
id | uid | SecondName | Work | WorkPhone | AddressType
------------------------------------------------------------------------
1 12 Агент23 ФБР +73242323 POST
2 13 Монстр МЕД +72423432 TEMP
3 14 Пилот ЭИР +13213121 NEW
------------------------------------------------------------------------


ADDRESS
---------------------------------------------------------------------------
id | uid | type | City | Street | Home | PostalIndex
---------------------------------------------------------------------------
1 12 POST New-York 5 авеню 20 231242
2 12 TEMP Bagdad 6 улица 12 121211
3 13 NEW Moscow Ивановская 10 812312
4 14 POST Vena Петровская 15 871261
---------------------------------------------------------------------------



Задача для меня непонятна..
Заключается она в том, что нужно написать запрос, который выберет и выведет данные для каждого пользователя,
что-то вроде:

----------------------------------------------------------------------------------------------------------------------------------
id | Name | Surname | SecondName | Work | WorkPhone | City | Street | Home | PostalIndex
----------------------------------------------------------------------------------------------------------------------------------
1 Дмитрий Иванов Агент23 ФБР +73242323 New-York 5 авеню 20 231242


Попробовал запросить так:
SELECT id, Name, Surname FROM USER u
LEFT JOIN
(SELECT uid, SecondName, Work, AddressType WorkPhone FROM INFO) i
on u.id = i.uid
INNER JOIN
(SELECT uid, type, City, Street, Home, PostalIndex FROM ADDRESS WHERE type = i.AddressType) adr
on adr.uid = i.uid
22 мар 12, 15:28    [12295967]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
JustNoob
Member

Откуда:
Сообщений: 37
Помогите, пожалуйста сделать такой запрос, чтобы результат был, как написано мною выше...
22 мар 12, 15:30    [12295984]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35399
Блог
and type = i.AddressType перенести в самый-самый конец из середины
22 мар 12, 15:33    [12296023]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по запросу  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
?

+

 
/*если могут отсутствовать записи*/
select u.id, u.Name, u.Surname
,i.SecondName ,i.Work, i.WorkPhone ,a.City,a.Street,a.Home,a.PostalIndex
from USER u 
left outer join info i on i.UID = u.id
left outer join ADDRESS a on a.UID = u.id and a.Type = i.AddressType

22 мар 12, 15:48    [12296172]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить