【问题标题】:UPDATE/ALTER SQL Table更新/更改 SQL 表
【发布时间】:2018-08-23 11:43:18
【问题描述】:

我正在使用 Oracle SQL 开发人员,我的数据库有两个表

第一个表 ra_stat:

第二桌丁香:

我需要编写查询,其中我将列“stat_id”设置为第一个表 ra_stat 列“kod”中的值

所以结果会是

Adam | SK | 1
Ferko | SK | 1 
Jozko | CZ | 2

谢谢!

【问题讨论】:

  • 那么,您了解 JOIN 了吗?如果没有,是时候去阅读它们了。如果是这样,您是否尝试过 来编写查询?如果是这样,请将其添加到您的问题中并解释为什么/如何它不起作用。
  • 此外,我们通常更喜欢 text 形式的示例数据(最好是现成的 INSERT 脚本或类似的),而不是 images。我们无法将图像复制并粘贴到我们的编辑器中并开始处理您的数据。我们不需要打字练习!
  • 等一下,不要将相同的数据存储两次。将这些值存储在 ra_stat 中,但不在两个表中。
  • 您想(永久)更新 stat_id 列吗?还是您只是想将该新值作为查询结果的一部分。
  • 感谢您的反对 .... -.-" 抱歉,我是 SQL 新手...

标签: sql oracle join sql-update


【解决方案1】:

直截了当,使用子查询:

UPDATE CLOVEK
       SET STAT_ID = (SELECT KOD
                             FROM RA_STAT
                             WHERE RA_STAT.KOD_KRAJINY = CLOVEK.KOD_KRAJINY);

【讨论】:

    【解决方案2】:

    您可以使用带有 where exists 的内部联接

    UPDATE clovek SET clovek.stat_id = (
        SELECT ra_stat.kod
        FROM ra_stat 
        WHERE clovek.kod_krajiny  = table2.kod_krajiny )
    WHERE  EXISTS (
          SELECT ra_stat.kod
          FROM ra_stat 
          WHERE clovek.kod_krajiny  = table2.kod_krajiny );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-24
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多