我建立了这个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_name
和contact_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)
我无法发现自己犯的错误,而且我真的可以借助新的批判眼神指出我在这里所缺少的东西。
最佳答案
这样行得通吗?
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)