似乎需要 GROUP BY 的 SQL 更新

标签 sql mysql

我想对表格进行更新,例如

UPDATE mytable
LEFT JOIN worker ON first=worker_first_name && last=worker_last_name
GROUP BY CONCAT(first, '%%', last)
SET taint = COUNT(pkey) > 1;

但是,UPDATE中的table_reference当然不允许GROUP BY。如何设置该栏?它只是检查名字/姓氏组合在另一个表中是否最多出现一次。

最佳答案

UPDATE mytable
INNER JOIN (
  select first, last, COUNT(pkey) > 1 Result
  FROM mytable
  LEFT JOIN worker ON first=worker_first_name AND last=worker_last_name
  GROUP BY first, last) OTHER
    on OTHER.first = mytable.first
   and OTHER.last = mytable.last
SET taint = OTHER.Result;

关于似乎需要 GROUP BY 的 SQL 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950780/

相关文章:

c# - 如何清除 Entity Framework 中的待定更改

c# - SQL:保存 MIME 类型或扩展名?

mysql - SQL 查询 - 按工作日从两个表中计数

php - 尝试将字段上的提交文本添加到我的数据库(localhost,phpmyadmin,mysql)中

mysql - 具有多个 INNER JOIN 的多列上的 GROUP BY

MySQL:JOIN 查询获取所有具有可为空字段的项目

sql - 使用一个 SQL Server 查询从不同服务器上的不同数据库获取数据

mysql - 如何从mysql表中选择日期范围计数

php - 无法插入 SQL 表或显示全部来自

python - Django Login 将进行身份验证,但重定向仅在远程服务器上失败