当前位置: 首页 > 面试题库 >

使用WHERE子句的具有多个表的MySQL UPDATE语法

储思聪
2023-03-14
问题内容

案件:

如何table1从相等的table2地方更新数据id

问题:

当我运行以下更新语句时,它将更新中的所有记录table1(即使中的id字段table1不存在table2)。

我如何使用的多个更新表的语法,在仅更新记录table1只有在id存在于table2和平等的吗?

UPDATE table1,table2
SET table1.value=table2.value 
WHERE table2.id=table1.id

提前致谢。


问题答案:

这是UPDATEwith join in 的正确语法MySQL

UPDATE  table1 a
        INNER JOIN table2 b
            ON a.ID = b.ID
SET     a.value = b.value
  • SQLFiddle演示


 类似资料:
  • 问题内容: 我有一个查询说 ,我想要的是使用where子句或其他任何方式显示多个记录,以便获得以下数据。 姓名编号 我试着用 在clause.ie 或等,但没有作品。 问题答案: 只需使用一个子句 您也可以使用OR(仅用于提供信息,在这种情况下,我将不使用此功能) 如果您的where子句中有其他条件,请不要忘记在“或”周围加上圆括号。

  • 由于在抽象中解释我要做什么有点困难,所以我克隆了spring-boot-sample-data-jpa项目,并对其进行了修改,以展示我正在尝试做什么的示例。 我有这些模型类,您将注意到和扩展了实体。 我正在尝试编写一个查询,返回包含或的所有城市,其主要运动是给定类型的。 我编写了一个JPQL版本的查询,它有点难看(我不喜欢部分来表示它是一家水疗酒店),但似乎返回了我想要的。 但该查询的QueryD

  • 问题内容: 是否可以采用以下方式构成的表: 最终变成这样的表: 我已经研究过使用枢轴,但无法使其正常工作。 我目前每个月都使用CROSS APPLY表值函数。 有一个更好的方法吗? 编辑:添加了现有查询-试图简化显示: 功能看起来像 问题答案: 您不需要多个子查询。答案很容易-使用集合理论。从您的第一个表ID / Month / Info1 / Info2轻松合并即可完成ID / Month +(

  • 问题内容: 对于MYSQL,我正在使用以下查询: 没关系,但我想向其投放15个以上的广告: 我要如何添加呢? 编辑: 根据猎人的建议: 这很棒!谢谢 问题答案: 这样的事情应该为您工作: 另外,如Simon所建议的,您可以这样做来避免输入两次值: 资料来源:http : //www.karlrixon.co.uk/writing/update-multiple-rows-with-differen

  • 问题内容: 我试图像这样更新我的表: 我可以做一个,但是会发送50多个单独的查询,这非常慢。这就是为什么我希望将其合并为1个大查询。 (我确实为每行使用一个 id ,但是 game_id , x 和 y 的组合才是我用来标识所需行的方法。) 这里描述了来自codeIgniter的update_batch()函数: 使用CodeIgniter更新批处理 是有用的,并且几乎是完美的,但是它仅允许1个单

  • 问题内容: 在WHERE子句中有使用SELECT语句描述的名称吗?这是好/不好的做法吗? 这会是更好的选择吗? 它远没有那么优雅,但是运行起来比以前的版本要快。我不喜欢它,因为它在GUI中没有非常清晰地显示(并且SQL初学者需要理解它)。我可以将其分为两个独立的查询,但是随后事情变得混乱了…… 注意:我不仅需要日期和分数(例如姓名) 问题答案: 称为相关子查询。它有它的用途。