“#1060 - 重复的列名”从 SELECT 转换为 UPDATE

“#1060 - Duplicate column name” converting from SELECT to UPDATE

我已经构建了这个 SELECT 查询并且 returns 得到了正确的结果:

SELECT CONCAT_WS(' ', n.contact_first_name, n.contact_last_name), n.contact_id, s.contact_id
  FROM contact n
  JOIN demographics s ON s.contact_id = n.contact_id

我得到一个 table,两个名字连接在一起并匹配 contact_id。我这样做的目的是将所有 contact_first_namecontact_last_name 写入列名 demographics_name 下的 demographics table。但是,我试图将 'convert' 我的 SELECT 语句变成更新,而我 运行 变成重复的列名问题。这是我尝试构建的查询:

UPDATE demographics d
    INNER JOIN (SELECT n.contact_first_name, n.contact_last_name, n.contact_id, s.contact_id
          FROM contact n
          JOIN demographics s ON s.contact_id = n.contact_id
    ) c 
    ON c.contact_id = d.contact_id
    SET d.demographics_name = CONCAT_WS(' ', c.contact_first_name, c.contact_last_name)

我无法发现我所犯的错误,我真的可以借助一组新的批判眼光来指出我在这里遗漏了什么。

这行得通吗?

UPDATE demographics d
    INNER JOIN contact c
    ON c.contact_id = d.contact_id
    SET d.demographics_name = CONCAT_WS(' ', c.contact_first_name, c.contact_last_name)