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

时间:2015-02-01 00:10:00

标签: php mysql sql select sql-update

我已经构建了这个SELECT查询,它返回了正确的结果:

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

我得到一个表格,其中包含两个连接的名称和匹配的contact_id。我的目的是将所有contact_first_namecontact_last_name写入列名demographics下的demographics_name表中。但是,我试图将我的SELECT语句“转换”为UPDATE,并且遇到了重复的列名称问题。这是我试图构建的查询:

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)

我无法发现我犯过的错误,我真的可以借助一套新的批判性眼睛来指出我在这里缺少的东西。

1 个答案:

答案 0 :(得分:1)

这会起作用吗?

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)