2013-12-04 4 views
2

Мне нужно заполнить некоторые поля в таблице, получая информацию из других записей одной таблицы. Я пытался написать запрос, чтобы объяснить, что я хочу сделать:Обновить таблицу с использованием псевдонима

update globale2 
set 
    nita = t.nita, 
    tita = t.tita, 
    notaita = t.notaita 
where 
    neng = t.neng and 
    nita is null 
    (select nita, neng, tita, notaita from globale where uris='mma' and nita is not null) as t 

редактировать в eplain лучше:

каждые записи имеют следующие поля: «Nita», «Тит», «notaita», " neng "(" neng "не может быть null)

Я хочу заполнить эти поля:« nita »,« tita »,« notaita »(где« nita »пуст) с теми же значениями из другой записи, где" neng "равно другому" neng "

ответ

3

Вы можете, однако, присоединиться к двум таблицам.

UPDATE globale2 g 
     INNER JOIN globale gg 
      ON g.neng = gg.neng 
SET  g.nita = gg.nita, 
     g.tita = gg.tita, 
     g.notaita = gg.notaita 
WHERE g.nita IS NULL 
     AND gg.uris = 'mma' 
     AND gg.nita IS NOT NULL 
0

Предположим, что существует таблица A_temp с двумя колонками «один» и «два». ТАБЛИЦА A_temp

ONE TWO 
1  2 

это современное состояние таблицы.

Запрос

UPDATE (SELECT * FROM A_temp) A SET one = A.two where one = '1' 

обновляет таблицу

ONE TWO 
2  2 

Надеется, что вы получите идею и что это помогает ..

Смежные вопросы