既にデータが入力されているテーブルを変更した後、既存の外部キー ID に従って新しい列を値で更新するにはどうすればよいですか。
例:
テーブルCarSalesがあるとします。ここでは、個々の車または車の種類ごとに販売数量をグループ化します。
ID | CarID | CarType | Quantity | SaleDate
1 | 1 | NULL | 2 | <some date>
2 | 2 | NULL | 3 | <some date>
3 | 2 | NULL | 1 | <some date>
4 | NULL | 'Trucks' | 12 | <some date>
...
CarIDは、テーブルCarsに接続する外部キーです:
CarID | Color | PistonMotion
1 | 'Blue' | V
2 | 'Gray' | V
3 | 'Pink' | Linear
4 | 'Blue' | Linear
...
次に、販売数量をピストン運動別にグループ化する必要があると判断したため、新しい列PistonMotionをCarSalesに追加します。
ID | CarID | CarType | PistonMotion | Quantity | SaleDate
1 | 1 | NULL | NULL | 2 | <some date>
2 | 2 | NULL | NULL | 3 | <some date>
3 | 2 | NULL | NULL | 1 | <some date>
4 | NULL | 'Trucks' | NULL | 12 | <some date>
...
現在、CarSalesはすでにデータでいっぱいですが (数千の行があるとしましょう)、1 回限りのアクションとして、同じ行のCarIDに従って、テーブルの各行のPistonMotionを更新する必要があります。CarIDとCarTypeの両方を CarSales テーブルの PistonMotion と共にグループ化したいので、将来、 Carsテーブルに対して単純に JOIN クエリを実行したくありません。CarIDが NULLの行でPistonMotionを更新できないことはわかっていますが、これは問題ではありません。これらは実際のテーブルではないため、無視してください。
問題は単純です: CarSalesのPistonMotionを更新して、同じCarIDが共有されているCarsのPistonMotionと等しくなるようにするには、どのようなクエリが必要ですか?