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

Откуда:
Сообщений: 11
Уважаемые форумчане!

Я пока ещё начинающий самоучка, поэтому заранее прошу простить за глупые вопросы. У меня их два.

№1. Есть две таблицы (MS SQL Server):

Таблица People (PersonID, FirstName, Surname, DateOfBirth, Role)

и таблица PhoneNumbers (PhoneNumberID, PhoneNumber, PersonID). Поле PersonID - ссылка на таблицу People

Задача состоит в том, чтобы сделать выборку всех полей из таблицы People (кроме ID) и ещё одного поля, в котором соединить через запятую телефонные номера из таблицы PhoneNumbers, относящиеся к данной персоне.

Подскажите пожалуйста, как подступиться к этой задаче. Нарыл что-то про STRING_AGG, но не разобрался, как её здесь применить.

№2. В моём случае одному человеку может соответствовать несколько телефонных номеров. То, что номера хранятся в отдельных таблицах - это не извращение? Сам до другого не додумался, но может быть есть стандартные паттерны для решения подобных проблем?

Заранее огромное спасибо!
С уважением, Сергей.
5 авг 18, 23:07    [21630660]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с составлением запроса.  [new]
eonae
Member

Откуда:
Сообщений: 11
Прошу прощения, случайно написал не в тот раздел.
6 авг 18, 00:10    [21630689]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с составлением запроса.  [new]
alex55555
Member [заблокирован]

Откуда:
Сообщений: 2129
eonae
Нарыл что-то про STRING_AGG, но не разобрался, как её здесь применить.

Правильно нарыли. Разбирайтесь.

Вообще это тема про агрегирование. Агрегирование это когда для получения одного значения используют много входных данных, которые "агрегируют" (от латинского слова "собирать вместе"). вам как раз и надо "собрать вместе". Ну а связать с челом - уже самые азы SQL.
6 авг 18, 14:49    [21631564]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с составлением запроса.  [new]
Никанор Кузьмич
Member

Откуда: Москва
Сообщений: 382
eonae
То, что номера хранятся в отдельных таблицах - это не извращение?
Во-первых, не в "отдельных таблицах", а в "отдельной таблице". Во-вторых, это не извращение, а нормальная форма (в прямом и переносном смысле). Извращение - это НЕ делать так.
6 авг 18, 19:35    [21632048]     Ответить | Цитировать Сообщить модератору
 Re: Прошу помощи с составлением запроса.  [new]
Изопропил
Member

Откуда:
Сообщений: 31124
Где-то так https://www.sql.ru/faq/faq_topic.aspx?fid=130
6 авг 18, 19:53    [21632069]     Ответить | Цитировать Сообщить модератору
Все форумы / Разработка информационных систем Ответить