У меня есть две таблицы:обновить первую строку таблицы в Postgres
Corresp
, которые имеют эти столбцы: idCorresp, textCorresp ,dateCorresp
Trans
, которые имеют эти столбцы: idTransf , textTransf, dateTransf,idCorresp
это пример данных:
Corresp
001, testCorresp, 01/01/2014
Trans
1 , T1, 01/01/2013, 001 2 , T2, 01/02/2013, 001 3 , T3, 01/03/2013, 001
Я хочу разработать запрос с Postgres изменить только первую строку таблицы trans
, которая связана с таблицей corresp
так сделать textCorresp
из Corresp
в этой колонке: textTransf
первой линии Trans`
Я стараюсь без успеха:
update Trans trans
set textTransf= (
select corresp.textCorresp
from Corresp corresp , Trans trans
where corresp.idCorresp= trans.idCorresp
)
from Corresp corresp , Trans trans
where corresp.idCorresp= trans.idCorresp
and trans.dateTransf=(select min(trans.dateTransf)
from Corresp corresp , Trans trans
where corresp.idCorresp= trans.idCorresp)
в результате после запуска моего запроса я хочу, чтобы этот результат в Trans
1 , testCorresp, 01/01/2013, 001 2 , T2, 01/02/2013, 001 3 , T3, 01/03/2013, 001
Стараюсь также с:
update Trans trans3 set textTransf= textCorresp from ( select Corresp .textCorresp , min(trans.dateTransf) from Trans trans , Corresp corresp, Trans trans2 where corresp.idCorresp= trans.idCorresp and corresp.idCorresp= trans2.idCorresp group by corresp.textCorresp ,trans.dateTransf )as toto WHERE trans3.idTransf = toto.idTransf
Прежде всего - как вы определяете 'только первую строку таблицы trans'? Это линия с минимальной датой? Строка с минимальным id? Что-то другое? –