“#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_name
和 contact_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)
我已经构建了这个 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_name
和 contact_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)