Замена данных в одной таблице данными из другой таблицы с использованием уникального идентификатора

#sql-server #ms-access

#sql-сервер #ms-access

Вопрос:

Я использую Access 2016 для просмотра данных из таблицы на нашем SQL server. У меня есть огромный журнал аудита, где просматриваемая запись представлена полем «folderId». У меня есть другая таблица, в которой есть значения для folderId (представленные как «fid») вместе со столбцами, идентифицирующими имя записи и другие идентификационные номера.

Я хочу иметь возможность заменить значение folderId в первой таблице значением CUSTOMER_NAME из второй таблицы, чтобы я сразу знал, что просматривается.

Я пробовал использовать различные методы объединения в Google, чтобы создать запрос, который выполнит это, но мой Google-fu слаб, или я просто недостаточно выпил кофеина сегодня.

Таблица 1.

 EventTime              EventType    FolderID                
 4/4/2019 1:23:39 PM    A            12345
  

Таблица 2

 fid      acc     Other_ID   Third_ID    CUSTOMER_NAME
12345     0       9875      12345678     Doe, John
  

В принципе, я хочу запросить таблицу 2 для поиска fid, используя значение в таблице 1 для folderId, и я хочу, чтобы в ответ было указано CUSTOMER_NAME, связанное с folderId / fid. Результат будет выглядеть следующим образом:

 EventTime              EventType    FolderID                
 4/4/2019 1:23:39 PM    A           Doe, John
  

Ответ №1:

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

ВЫБЕРИТЕ [table1].Время события, [table1].EventType, [table1].Идентификатор папки, [table1].ObjRef, [table1].AreaID, [table1].FileID, [table2].ИМЯ_КЛИЕНТА, [table2].fid ИЗ [table2] СЛЕВА ПРИСОЕДИНИТЕ [table1] К [table2].[fid] = [table1].[folderId];

Ответ №2:

Вы можете запустить этот запрос и проверить, помогает ли это!.

 Select EventTime, EventType , CUSTOMER_NAME AS FolderID  FROM Table1, Table2 Where Table1.FolderID = Table2.fid;
  

В принципе, ‘AS’ здесь делает то, что вы хотите, поскольку вы можете переименовать свой столбец во что хотите.