2015-03-31 27 views
0

這裏是僞代碼我試圖做的事:的毗連值到新列的MySQL

update msa_list_copy 
select group_concat(distinct msa_name separator ', ') as concat_msa_name 
group by msa 

我的表msa_list_copy有兩列... MSA和MSA_NAME。我試圖連接共享相同msa(數字)的msa_names並將此值保存在(當前爲空)第三列concat_msa_name中,但我無法完全理解。

回答

1

您需要指定您正在更新的字段。

update msa_list_copy join 
(select msa, group_concat(distinct msa_name separator ', ') 
     as concat_msa_name from msa_list_copy 
    group by msa) as t0 using(msa) 
set msa_list_copy.concat_msa_name=t0.concat_msa_name 
+0

這給了我一個SQL語法錯誤在第1行固定爲3線 – jonmrich 2015-03-31 01:37:52

+0

SQL語法錯誤。我通過查詢使用您的組,並且缺少表名。 – jonmrich 2015-03-31 01:41:49

+1

開始從第一個括號 – Rasika 2015-03-31 01:45:09

0

的SQL是:

update msa_list_copy inner join 
(select group_concat(distinct msa_name separator ', ') as concat_msa_name 
group by msa) as q on msa_list_copy.concat_msa_name=q.concat_msa_name set msa_list_copy.concat_msa_name = q.concat_msa_name 
+0

它應該指定更新中的連接以說明哪個記錄被更新。 – Rasika 2015-03-31 01:40:41

+0

這給了我一個錯誤第3行 – jonmrich 2015-03-31 01:41:20

+0

@Rasika關於如何更新它的建議? – jonmrich 2015-03-31 01:43:13