Доступ Добавить запрос сравнить с таблицей - PullRequest
0 голосов
/ 04 декабря 2018

В настоящее время я перестраиваю грязную базу данных Access и столкнулся со следующей проблемой:

У меня есть таблица объектов, которая содержит строку, называемую район.Эти строки содержат число, связанное с другой таблицей, которая просто содержит номера и названия районов.Я добавил поисковый столбец с отображенным названием района.

Теперь я хочу изменить новый столбец для каждой строки в зависимости от данных в старой строке.

Услуги

NAME|..|DISTRICT_OLD
A   |..|           1
B   |..|           2
C   |..|           1
...

РАЙОНЫ

ID|NAME
1 |EAST
2 |WEST
...

Я бы хотел что-то вроде следующего: Услуги

NAME|..|DISTRICT_OLD|DISTRICT
A   |..|           1|EAST
B   |..|           2|WEST
C   |..|           1|EAST
...

Поле района (поиск) получает свои данные следующим образом SELECT [DISTRICTS].ID, [DISTRICTS].NAME FROM DISTRICTS ORDER BY [NAME];

(благодаря Гордону Линоффу) Я мог бы получить запрос, но теперь я борюсь свставить.Я могу получить необходимые данные:

SELECT [DISTRICTS].NAME FROM Facilities INNER JOIN DISTRICTS ON Facilities.DISTRICT_OLD = [DISTRICTS].ID;

Если я попытаюсь INSERT INTO Facilities(DISTRICT) Там написано Typerror.Как я могу изменить данные, чтобы они были совместимы со столбцом поиска?Я думаю, мне нужно выбрать идентификатор, который не является проблемой, но тогда ошибка говорит о многих столбцах.

Надеюсь, я не ошибся ни в одном имени, мой Access не работает на английском языке.

Вы можете мне помочь?

Фабиан

1 Ответ

0 голосов
/ 05 декабря 2018

Столбцы подстановки имеют число (длинное целое)

в реляционной базе данных, вам нужен только один столбец, содержащий идентификатор (как вы всегда ищете поисковое имя district.name), поэтому:

INSERT INTO Facilities(DISTRICT) SELECT 4

где 4 - это идентификатор записи в таблице поиска, которую вы хотите, или, что еще лучше:

INSERT INTO Facilities(DISTRICT) 
    SELECT ID FROM DISTRICTS 
        where District.Name = "Name you want the ID for"
...