У меня есть следующие 2 таблицы и я пытаюсь обновить поле внешнего ключа CategoryID в таблице подкатегорий. Одна категория может иметь несколько подкатегорий, поэтому отношения здесь от одного до многих.Запрос на обновление Microsoft Access 2010 - обновление поля внешнего ключа
Im пытается сделать это в критериях дизайна запроса view.The им пытаются использовать для обновления выглядит следующим образом:
Категория имена начинаются с упаковочным материалом число, например 106. Подкатегории для этой категории будут начинаться с тех же трех цифр, например, 106 картона, 106 пузырьков и т. Д.
Поскольку у меня есть длинный список подкатегорий, им пытаются использовать запрос на обновление, чтобы ввести идентификатор категории (Categories.ID) в столбец categoryID в таблице подкатегорий (подкатегории.CategoryID), где первые 3 цифры одинаковы.
Итак, в приведенном выше примере, если 106 упаковочных материалов имеют идентификатор 1 в таблице категорий, тогда 106 картонных и 106 пузырьков будут иметь «1» в своем поле категорииID.
Я знаю, что могу использовать Left (categoryname, 3) для извлечения чисел для сравнения, но не знаю, как построить оператор update для выполнения этого или для его размещения.
Таким образом, мой окончательный желаемый результат состоит в том, что все подкатегории имеют соответствующую запись категории. Некоторые больше категорий и связанных с подкатегорию примерами являются:
101 канцтовары (ID 2) -> 101 ноутбуков, 101 ручки, 101 блокноты
102 искусства и ремесла (ID 3) -> 102 краски , 102 щетки
ID признателен за помощь и им совсем новое для SQL и доступа.
благодаря
UPDATE:
я попытался следующие SQL
UPDATE subCategories INNER JOIN categories ON subCategories.categoryID = categories.ID SET subCategories.CategoryID = [Categories].[ID] WHERE ((Left([Categories].[Category],3)=Left([Subcategories].[Subcategory],3)));
Вот тот же запрос в режиме конструктора:
Но это результат возвращается:
привет, я пробовал это, но продолжаю получать синтаксические ошибки? должен ли этот sql работать в базе данных доступа? коллега считает, что он похож на синтаксис SQL-сервера. извините, но я очень новичок во всем этом! – Nick
Прошу прощения. Я отредактировал ответ для работы с доступом. – trailer
спасибо, трейлер, это сработало! Извините за поздний ответ :) – Nick