在更改已填充数据的表后,如何根据先前存在的外键 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
...
然后我决定还需要按活塞运动对销售数量进行分组,因此我在 CarSales 中添加了一个新列PistonMotion:
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已经充满了数据(假设我有数千行),但我需要根据同一行上的 CarID 为表中的每一行更新PistonMotion作为一次性操作。由于我想在CarSales表中将CarID和CarType与PistonMotion组合在一起,因此我不想在将来简单地对Cars表进行 JOIN 查询。我知道我将无法在CarID为 NULL的行上更新PistonMotion,但这没关系,因为这些不是我的实际表,所以请忽略这一点。
问题很简单:我需要什么查询才能更新CarSales中的PistonMotion,使其与共享相同CarID的汽车中的PistonMotion相等?