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

Откуда:
Сообщений: 2
Уважаемые форумчане, подскажите, пожалуйста, как вместо идентификаторов первой таблицы, вывести соответствующие этим идентификаторам данные из второй таблицы?

Создание таблиц и наполнение данными:
-- Таблица "Персонал"
CREATE TABLE [dbo].[tbAccounts]
(
	[idAccount]	int IDENTITY(1, 1),
	[strFamiliaIO]	varchar(128)
)

-- Таблица "Журнал"
CREATE TABLE [dbo].[tbJournal]
(
	[idEmployee01]	int,
	[idEmployee02]	int,
	[idEmployee03]	int
)

INSERT INTO tbAccounts VALUES ('Петров Н.В.')
INSERT INTO tbAccounts VALUES ('Мельников А.С.')
INSERT INTO tbAccounts VALUES ('Федорова Н.Н.')
INSERT INTO tbJournal VALUES (3, 1, 2)


SELECT в простом формате:
SELECT * FROM tbJournal


выводит данные в таком виде:
idEmployee01 | idEmployee02 | idEmployee03
3 | 1 | 2


Как правильно построить запрос, чтобы вместо идентификаторов 1,2,3 выводились соответствующие им фамилии из второй таблице в таком виде:
idEmployee01 | idEmployee02 | idEmployee03
Федорова Н.Н.| Петров Н.В. | Мельников А.С.


Почитав документацию думаю, что это делается через JOIN, примерно в таком направлении:
SELECT strFamiliaIO idEmployee01, strFamiliaIO idEmployee02, strFamiliaIO idEmployee03
FROM tbJournal
INNER JOIN tbAccounts ON tbAccounts.idAccount = tbJournal.idEmployee01


на выводе получается следующее:
idEmployee01 | idEmployee02 | idEmployee03
Федорова Н.Н.| Федорова Н.Н. | Федорова Н.Н.


но не получается привязать сюда ещё два оставшихся поля, так, например, код некорректный:
SELECT strFamiliaIO idEmployee01, strFamiliaIO idEmployee02, strFamiliaIO idEmployee03
FROM tbJournal
INNER JOIN tbAccounts ON tbAccounts.idAccount = tbJournal.idEmployee01,
INNER JOIN tbAccounts ON tbAccounts.idAccount = tbJournal.idEmployee02,
INNER JOIN tbAccounts ON tbAccounts.idAccount = tbJournal.idEmployee03;
23 дек 11, 21:56    [11818200]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести данные из второй таблицы вместо идентификаторов первой?  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
SELECT 
   strFamiliaIO1 = acc1.strFamiliaIO, idEmployee01, 
   strFamiliaIO2 = acc2.strFamiliaIO, idEmployee02, 
   strFamiliaIO3 = acc3.strFamiliaIO, idEmployee03
FROM tbJournal
   INNER JOIN tbAccounts acc1 ON acc1.idAccount = tbJournal.idEmployee01,
   INNER JOIN tbAccounts acc2 ON acc2.idAccount = tbJournal.idEmployee02,
   INNER JOIN tbAccounts acc3 ON acc3.idAccount = tbJournal.idEmployee03;
23 дек 11, 22:05    [11818229]     Ответить | Цитировать Сообщить модератору
 Re: Как вывести данные из второй таблицы вместо идентификаторов первой?  [new]
avidex
Member

Откуда:
Сообщений: 2
Программист-Любитель,
Спасибо, Вам, ОГРОМНОЕ, всё именно так и хотелось!
23 дек 11, 22:18    [11818271]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить