mysql - 从与另一个查询的连接更新表?

标签 mysql sql sql-update

我有一张表“球员”和“奖项”。我有一些重复的播放器条目,它们具有不同的 ID,但其他信息相同。

我正在尝试更新与第二个玩家条目关联的奖项,以便我最终可以删除重复项。

这显然不是最高效的查询,但它只需要运行一次,而且只有 10-15 次重复。 到目前为止我有这个:

UPDATE aw
SET aw.player_id = map.id1
FROM awards as aw,
    (SELECT a.id as id1, b.id as id2
    FROM players a, players b
    WHERE a.first_name = b.first_name 
    AND a.last_name = b.last_name 
    AND a.id != b.id 
    AND a.team is not null 
    AND a.college is not null) as map
WHERE map.id2 = aw.player_id

这给了我一个未指定的语法错误,但是如果我只用替换前两行 “选择 aw.player_id,map.id1”,它返回一个包含预期值的两列表(因此列名和表引用都是正确的)。

我肯定遗漏了一些明显的东西,但那是什么?

最佳答案

UPDATE syntax中没有FROM .

您应该在 SET 之前在 UPDATE 部分定义表

UPDATE awards as aw,
  (SELECT a.id as id1, b.id as id2
  FROM players a, players b
  WHERE a.first_name = b.first_name 
  AND a.last_name = b.last_name 
  AND a.id != b.id 
  AND a.team is not null 
  AND a.college is not null) as map
SET aw.player_id = map.id1
WHERE map.id2 = aw.player_id

关于mysql - 从与另一个查询的连接更新表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10036039/

相关文章:

php - 如何在php中添加另一个条件

mysql - 将数据从 Talend studio 加载到 Mysql 时出错

sql - 在 VB NET 中从 SQL 数据库中检索位列

mysql - 从 2 个 mySQL 数据库到一个

sql - SELECT FOR UPDATE 中的数据库死锁

mysql - 如何在 MySQL 中设置计数器列值?

javascript - AngularJS $范围未定义

php - 动态查询数据库以检查值

mysql - mysql中的负限制偏移量

mysql - 从 SQL 查询中删除不完整的 ISO 日期?