2016-06-20 2 views
0

У меня есть следующие таблицыобновления с внутренним соединением поднимая за синтаксическую ошибку

enter image description here

и я хочу, чтобы обновить таблицу Контакты, так что поле CompanyID будет newCompanyId в table2.

Я пробовал следующий запрос:

UPDATE contacts 
SET contacts.companyId = table2.newComapnyId 
FROM contacts 
INNER JOIN table2 
ON contacts.contactId = table2.conatctId 

Но я получаю ошибку синтаксиса. Я искал, и насколько я мог найти, так я должен написать запрос.

(Пожалуйста, простите опечатки в реальном запросе я проверил и нет опечаток имен и такого ...)

ответ

2

В некоторых RDMS вам не нужно указывать предложение FROM, поскольку оно уже включено в оператор. Попробуйте следующее:

UPDATE contacts c 
INNER JOIN table2 t 
ON c.contactId = t.conatctId 
SET c.companyId = t.newComapnyId 
+0

Строка 'SET' должна быть последней строкой, тогда она должна работать. – Andre

+0

@ Andre Thx за то, что пропустил это, когда отправил ответ –

+0

@andre, ваш комментарий вместе с ответом marcus H сделал трюк. Вы должны сделать ответ. – MJH

-1

Для SQL SERVER

алиаса

UPDATE c 
SET c.companyId = t.newComapnyId 
FROM contacts c 
INNER JOIN table2 t 
ON c.contactId = t.conatctId 
+0

Это не работает для доступа ms. – MJH

Смежные вопросы