我正在尝试执行此查询:
UPDATE asignaturasemestre
SET asignatura11 = 'cambiado'
WHERE asignaturasemestre.iddatosgenerales = datosgenerales.iddatosgenerales
AND datosgenerales.curp = 'CURP'
我知道这很糟糕,但这就是这个想法:
正如您所看到的,我不知道iddatosgenerales
,但我知道它有一个外键(iddatosgenerales
)。用户只会编写curp,所以这个curp不在另一个表中,所以我需要更新另一个表,但我不知道这行的id。
正如我告诉你的那样,我只知道CURP
列,但这是在另一个表中(这是唯一的)。但它不是主键 - 它不介意,id是iddatosgenerales
,它是我要更新的另一个表中的外键。
答案 0 :(得分:5)
这适用于 MySQL :
UPDATE asignaturasemestre AS a
, datosgenerales AS d
SET a.asignatura11='cambiado'
WHERE a.iddatosgenerales=d.iddatosgenerales
AND d.curp='CURP'
这适用于 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'
答案 1 :(得分:0)
update asignaturasemestre,datosgenerales
set asignatura11='cambiado'
where asignaturasemestre.iddatosgenerales=datosgenerales.iddatosgenerales
and datosgenerales.curp='CURP'
答案 2 :(得分:0)
现在我找到了答案
update asignaturasemestre set asignatura11='cambiado'
where iddatosgenerales=(select datosgenerales.iddatosgenerales from datosgenerales inner join asignaturasemestre on
datosgenerales.iddatosgenerales=asignaturasemestre.iddatosgenerales where curp='123ABC');
我做了正常的查询,但当我把iddatosgenerales我做一个查询得到iddatosgenerales与curp用户给了我