2017-01-09 3 views
1

Я добавил столбец в таблицу WorkSheetTransaction и хочу заполнить его именем, созданным из таблицы Department. Обе таблицы уже заполнены полем соединения DepartmentId.Обновление MySql с присоединением из другой таблицы

Следующий запрос выполняется нормально, но строки не обновляются. Почему нет?

update WorkSheetTransactions 
inner join Departments on WorkSheetTransactions.DepartmentId = Departments.DepartmentId 
set WorkSheetTransactions.DepartmentName = (Departments.GL_Account + '-' + Departments.DepartmentName) 

Я пробовал много вариантов, но я просто не вижу, где я ошибся. BTW, поле объединения является целым числом в обеих таблицах, а все остальные 2 - var_chars.

+0

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

ответ

0

В MySQL, вы должны использовать concat для конкатенации строк:

UPDATE WorkSheetTransactions 
INNER JOIN Departments 
ON WorkSheetTransactions.DepartmentId = Departments.DepartmentId 
SET WorkSheetTransactions.DepartmentName = concat(Departments.GL_Account, '-', Departments.DepartmentName) 
Смежные вопросы