Как вы делаете обновление, если вы не знаете идентификатор, и просто вы знаете информацию с другой таблицей, связанной - PullRequest
0 голосов
/ 30 апреля 2011

Я пытаюсь выполнить этот запрос:

UPDATE asignaturasemestre 
   SET asignatura11 = 'cambiado' 
 WHERE asignaturasemestre.iddatosgenerales = datosgenerales.iddatosgenerales 
   AND datosgenerales.curp = 'CURP'

Я знаю, что это плохо, но это идея:

Как видите, я не знаю iddatosgenerales, но я знаю, что у него есть внешний ключ (iddatosgenerales).Пользователи будут писать только curp, так что с этим curp нет в другой таблице, поэтому мне нужно обновить другую таблицу, но я не знаю id этой строки.Как я уже говорил, я просто знаю столбец CURP, но он находится в другой таблице (это уникально).Но это не первичный ключ - это не имеет значения, идентификатор - iddatosgenerales, который является внешним ключом в другой таблице, где я хочу обновить.

Ответы [ 3 ]

5 голосов
/ 30 апреля 2011

Это для 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'
0 голосов
/ 30 апреля 2011

Теперь я нашел ответ:

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, который дал мне

0 голосов
/ 30 апреля 2011
update asignaturasemestre,datosgenerales 
set asignatura11='cambiado' 
where asignaturasemestre.iddatosgenerales=datosgenerales.iddatosgenerales 
and datosgenerales.curp='CURP'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...