Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2014, 17:01   #1
Решетова Алена
Форумчанин
 
Регистрация: 13.12.2012
Сообщений: 116
По умолчанию select с заменой значений трех столбцов

Ребята, здравствуйте. Не могу понять, как осуществить запрос. Прошу помощи.

Есть 2 таблицы:

Employees
ID | LastName | FirstName | ...
------------------------------
1 | Курочкин | Николай |
2 | Федотов | Геннадий |
3 | Сидоров | Василий |
4 | Нестеров | Михаил |
5 | Петров | Александр |
...

Events
ID | Date | ... | ID_Employees1 | ID_Employees2 | ID_Employees3 | ...
1 | ...... | ... | ........2........... | .........3......... | .......NULL...... | ...
2 | ...... | ... | ........1........... | .......NULL...... | .......NULL...... | ...
3 | ...... | ... | ........4........... | .........5......... | .........1......... | ...
...

Т.е. в таблице Events в столбцах ID_Employees1, ID_Employees2, ID_Employees3 указаны ID на нужных людей из таблицы Employees. Мне нужно вывести таблицу Events так, чтобы вместо этих ID были фамилии нужных людей. Если был бы один такой столбец, я бы написала так:
Код:
SELECT Events.ID, Events.Date, Employees.LastName FROM Events LEFT JOIN Employees ON Employees.ID = Events.ID_Employees
Но их 3... и они все ссылаются на одну таблицу и на один её столбец - LastName... Мой мозг ломается.

Последний раз редактировалось Решетова Алена; 05.06.2014 в 17:06.
Решетова Алена вне форума Ответить с цитированием
Старый 05.06.2014, 17:06   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
SELECT Events.ID, Events.Date, E1.LastName AS Name1, E2.LastName AS Name2 
  FROM Events 
    LEFT JOIN Employees E1 ON E1.ID = Events.ID_Employees1
    LEFT JOIN Employees E2 ON E2.ID = Events.ID_Employees2
и т.д.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.06.2014, 17:12   #3
Решетова Алена
Форумчанин
 
Регистрация: 13.12.2012
Сообщений: 116
По умолчанию

О, спасибо огромное!
Решетова Алена вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Осуществление сортировки значений трех переменных. Inesto Паскаль, Turbo Pascal, PascalABC.NET 1 22.05.2013 20:53
максимальное из трех значений Тандер Microsoft Office Word 3 11.04.2012 12:01
Копирование записи с заменой значений некоторых полей WoodHead БД в Delphi 11 03.08.2011 10:01
select-запрос из трех таблиц AJlEKCA БД в Delphi 10 19.01.2011 01:38