2017-01-09 18 views
1

WorkSheetTransactionテーブルにカラムを追加し、Departmentテーブルから作成した名前を入力したいとします。どちらの表にも、DepartmentIdという結合フィールドがすでに設定されています。別のテーブルからの結合によるMySqlの更新

次のクエリは正常に実行されますが、行は更新されません。何故なの?

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

多くのバリエーションを試しましたが、どこが間違っているのか分かりません。ところで、結合フィールドは両方のテーブルの整数で、他の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) 
関連する問題