【问题标题】:MySQL - Set field values as values from another tableMySQL - 将字段值设置为另一个表中的值
【发布时间】:2013-01-25 21:21:51
【问题描述】:

我想知道哪个是正确的查询语句,可以从一个表中获取值并将它们插入到另一个表中,这种方式类似于使用 WHERE 子句

例子-

Table1 包含以下字段: 注册号 - 名称

Table2 包含以下字段: id - 名字 - 姓氏

查询必须设置 Table1.name = Table2.firstname 其中 Table1.registrynumber 和 Table2.id 在 Table1.name 和 Table2.firstname 的行中具有相同的值。

我希望我说得足够清楚。 问候。

【问题讨论】:

  • 您是在更新还是插入?从你的回答中看不清楚
  • 我能想到的最好方法是从 table1 中删除 name 字段。数据库规范化的一部分是每条数据只存储一次。

标签: mysql sql join where


【解决方案1】:
INSERT INTO Table1 (registrynumber, name)
SELECT id, firstname FROM Table2;

【讨论】:

    【解决方案2】:
    UPDATE Table2 tb2
    SET tb2.firstname = ( SELECT name FROM Table1 WHERE registryname = tb2.id )
    

    【讨论】:

    • 您确定它会选择与“tb2.firstname”同一行中的正确“tb2.id”
    猜你喜欢
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    相关资源
    最近更新 更多