Вот моя ситуация. Прежде всего, я не работаю над реляционной базой данных, я просто использую доступ как простой способ манипулирования данными. На данный момент у меня много столов.
Одна основная таблица, назовем ее MAIN и еще 10 другими таблицами, мы можем назвать X1, X2, X3 и т. Д. Таблица X1 содержит элементы, обладающие свойством X1. Таблица X2 содержит элементы, обладающие свойством X2, и так далее.ACCESS/SQL: как вставлять INTO/UPDATE одновременно?
Все таблицы Xx имеют одинаковые поля. MAIN table имеет те же поля, кроме того, поля X1, X2 и т. Д., Которые являются булевыми.
Что я хочу сделать:
Я хочу кормить основную таблицу с данными из таблиц Xx.
Дело в том, что могут быть элементы, которые имеют несколько свойств, поэтому они могут появляться, например, в X1, X2, X5.
Так что я попытался в первый работает следующим образом:
UPDATE MAIN
SET itemnumber = X1.itemnumber, x1 = "true";
но это ничего не дает. теперь я полагаю, что это логично, поскольку в таблице MAIN нет записей.
В любом случае, какой запрос я могу написать, который будет делать это:
Если запись таблицы X1 еще не существует в MAIN, добавьте ее и установите для поля X1 значение true.
Если запись X1 уже существует в MAIN, обновите ее и установите для поля X1 значение true.
(Тогда я бы обновить его для запуска на каждом столе X у меня есть.)
Я рассматриваю INSERT INTO, но я не хочу, чтобы перезаписать данные, которые уже существуют, или генерировать ошибку (я на самом деле не знаю много обо всем этом> _>)
Заранее благодарим любого, кто может предоставить советы.
редактировать 1
Я думал, что я бы сначала попытаться вставить все данные из таблиц Xx в основной таблице (они имеют ту же структуру)
поэтому я попробовал это на первый:
INSERT INTO MAIN.itemnumber
(select X1.itemnumber from X1
UNION ALL
select X2.itemnumber from X2)
пробовал только на одном поле, чтобы увидеть, если он работает, но это не делает:/
Я понял, когда я добавил все данные из таблиц X, то я бегу Fe w UPDATE с WHERE EXISTS для каждой таблицы Xx, установив для соответствующего свойства Xx значение true, и я закончил.
Но я с трудом даже делать что-то, как «простой», как слияние данных из нескольких таблиц в один ....
не знал, что мы могли бы использовать IF в sql. попытается получить что-то от этого! –
«IF» не работает в Access ... «Недопустимая инструкция SQL». Или, может быть, я не делаю это правильно. –
Не отправляйте не-Access SQL для вопроса, четко обозначенного (и идентифицированного в тексте вопроса) как Access. -1 –