Как вставить с предложением где - PullRequest
5 голосов
/ 13 февраля 2009

Я использую следующий запрос для вставки значений в одно поле таблицы A.

insert
into A (name)
values ('abc')
where
   A.id=B.code
   and B.dept='hr' ;

Является ли этот запрос правильным? Если нет, пожалуйста, предоставьте мне правильный путь.

Ответы [ 4 ]

9 голосов
/ 13 февраля 2009

Вам лучше использовать UPDATE, если вы хотите изменить значение поля в записях, которые вы выбираете с помощью предложения WHERE.

6 голосов
/ 13 февраля 2009
MERGE
INTO a
USING (
  SELECT *
  FROM b
  WHERE b.dept = 'hr'
)
ON a.id = b.code
WHEN NOT MATCHED THEN
  INSERT (id, name)
  VALUES (code, 'abc')
WHEN MATCHED THEN
  UPDATE
  SET name = 'abc'
1 голос
/ 18 апреля 2017
INSERT INTO A (name)
SELECT name 
FROM A as a
LEFT JOIN B as b ON b.id=a.id
WHERE a.id=b.code AND b.dept='hr'

A - это первая таблица, затем B - это вторая таблица JOIN вместе, используя LEFT JOIN, затем name - столбец это то, что он хочет сделать по своему вопросу.

Это то, что делает "INSERT SELECT STATEMENT".

Запрос, который можно вставить при выполнении выбора и объединения WHERE и JOIN.

INSERT TABLE1 (column1)
SELECT column1
FROM TABLE1 as a
LEFT JOIN TABLE2 as b ON b.column1=a.column1
WHERE a.column2=b.column3 AND b.column4='hr'
1 голос
/ 12 марта 2009

вставная часть должна быть в порядке

insert
into A (name)
values ('abc')

это действительно зависит от того, чего вы пытаетесь достичь с помощью предложения where и ссылки на таблицу B.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...