我有 2 張桌子trainings和training_instances. 請參閱下面的架構:
培訓表:
column_name data_type is_nullable. foreign_key
id uuid NO NULL
day int4 NO NULL
start_time time(0) NO NULL
end_time time(0) NO NULL
team_id uuid YES public.teams(id)
inserted_at timestamp(0) NO NULL
updated_at timestamp(0) NO NULL
請注意,培訓表還沒有 date 或 start_date 列。名為的列day是星期幾。一個 training_id 可以有多個訓練實體。
training_instances 表:
column_name data_type is_nullable. foreign_key
id uuid NO NULL
date date NO NULL
start_time time(0) NO NULL
end_time time(0) NO NULL
team_size int4 YES NULL
training_id uuid YES public.trainings(id)
team_id uuid YES public.teams(id)
inserted_at timestamp(0) NO NULL
updated_at timestamp(0) NO NULL
我正在嘗試創建一個在表中命名的新列start_date,trainings然后在此處插入資料以進行現有培訓。我想在這個新列中為每個訓練插入date其對應訓練實體中最舊的訓練。start_date
最好的方法是什么?
uj5u.com熱心網友回復:
首先,使用創建列
alter table public.trainings add "start_date" date null;
然后,嘗試執行這個查詢
update trainings
set start_date = (select min(ti.date) from training_instances ti where
trainings.team_id = ti.team_id and
trainings.id = ti.training_id)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/418785.html
標籤:
下一篇:根據行中資料的可變性確定行的順序
