如果你不知道id,你怎么做更新,只是你知道另一个表关系的信息

ang*_*gel 0 sql sql-server sql-update

我正在尝试执行此查询:

UPDATE asignaturasemestre 
   SET asignatura11 = 'cambiado' 
 WHERE asignaturasemestre.iddatosgenerales = datosgenerales.iddatosgenerales 
   AND datosgenerales.curp = 'CURP'
Run Code Online (Sandbox Code Playgroud)

我知道这很糟糕,但这是个主意:

正如你所看到的,我不知道iddatosgenerales,但我知道它有一个外键(iddatosgenerales).用户只会编写curp,所以这个curp不在另一个表中,所以我需要更新另一个表,但我不知道这行的id.正如我告诉你的那样,我只知道CURP列,但这是在另一个表中(这是唯一的).但它不是主键 - 它不介意,id是iddatosgenerales我要更新的另一个表中的外键.

ype*_*eᵀᴹ 5

这适用于MySQL:

UPDATE asignaturasemestre AS a
     , datosgenerales AS d
SET  a.asignatura11='cambiado' 
WHERE a.iddatosgenerales=d.iddatosgenerales 
  AND d.curp='CURP'
Run Code Online (Sandbox Code Playgroud)

这适用于SQL-Server:

UPDATE a
SET  a.asignatura11='cambiado' 
FROM asignaturasemestre AS a
    JOIN datosgenerales AS d
        ON a.iddatosgenerales=d.iddatosgenerales 
WHERE d.curp='CURP'
Run Code Online (Sandbox Code Playgroud)

  • @angel:这个错误信息不是你从MySQL获得的格式,而是SQL Server ......它有所不同,知道你正在使用什么数据库,因为它们并不都支持完全相同的东西. (3认同)