Я пытаюсь обновить столбец таблицы, используя данные (первичный ключ) другой таблицы. Человек, создавший базу данных, добавил таблицу «Сведения», в которой все идентификаторы были добавлены в каждую строку, даже несмотря на то, что идентификаторы были связаны, поэтому фактически для получения всех остальных идентификаторов требовался только один идентификатор. Таблица «Подробности» выглядит так:
RecordID int
DepartmentID int
ProjectID int
FunctionID int
TaskID int
OwnerID int
Однако в таблице «Отдел» уже есть столбец ProjectID; таблица «Project» имеет столбец FunctionID и т. д. Таким образом, для доступа ко всем другим идентификаторам требуется только OwnerID в этой таблице; остальные излишни.
В таблице «Функция» есть столбец «ProjectID», который мне нужно заполнить. Когда я бегу:
select distinct(functionid), ProjectID from Detail order by FunctionID, ProjectID;
Я получаю:
FunctionID ProjectID
1 5
10 9
11 1
12 1
13 8
14 10
15 8
16 8
17 1
... ...
Мне нужна вторая часть:
update functions set projectid = (select ProjectID from Detail where FunctionID=?)
Мне нужно закончить таблицу «Function», в которой есть эти идентификаторы проекта.