更新者和mysql的
问题描述:
数= 1我有这样的SQL查询与A组表:更新者和mysql的
SELECT *
FROM caduti
GROUP BY foto
HAVING count(foto) = 1
我有表caduti
具有重复值foto
列,需要从foto
柱值来更新列foto_ok
仅适用于列中唯一的值。
我尝试了好几种UPDATE语句像这样的
UPDATE caduti
SET foto_ok=foto
FROM (
SELECT *
FROM caduti
GROUP BY foto
HAVING count(foto) = 1
)
,但我无法弄清楚如何使它发挥作用。任何帮助?
答
您可以从内部查询中获得唯一的foto
,然后应用自联接并更新所有行。
UPDATE (SELECT foto
FROM caduti
GROUP BY foto
HAVING count(foto) = 1) u
INNER JOIN caduti AS c ON c.foto = u.foto set foto_ok=u.foto;
不明白你和c代表什么。我已经试过查询,因为它是,但给我6静态错误和sql错误#1052 - 列:'foto'从字段列表是'含糊 – Pier67
@ Pier67当然你会得到错误。因为照片栏不明确。我已经更新了答案。另外,你和c只是别名。我不知道,你怎么不知道别名的命名。 – Ravi
我知道什么是别名命名,但我需要一些时间来了解如何使用它,因为我是一个新手。最后,我用caduti代替c,让它保持原样并且工作!所以非常感谢你! – Pier67