我有2张桌子
positions
- 其中包含一个名为“tripname
”的字段
trips
- 其中包含一个名为“name
”
我使用一个csv文件从中导入数据到这两个表中,现在我需要做一些进一步的更新,并且有点卡住了。
通过添加csv文件中包含的行数来更新“positions
”表。一个字段称为“tripname
”(包含值),另一个字段称为“FK_Trips_ID
”(添加为NULL)。
“trips
”表只更新了一行(如果它还不存在),其中包含一个名为“name”的字段和另一个名为“ID”的字段。
这是我被困的地方。我需要:
Insert into the 'positions.FK_Trips_ID' field the value of the 'trips.ID'
where the 'trips.name' is equal to the 'positions.tripname
- BUT only if 'positions.FK_Trips_ID' is NULL
我找不到这种类型插入的类似例子,并想知道某种灵魂是否能指出我正确的方向。
答案 0 :(得分:2)
根据UPDATE
表格上的匹配记录,我认为你的意思是来自表格FK_Trips_ID
的{{1}}列positions
。
您可以将两个表连接到数据库上只有一个请求,
trips
为了更快地执行UPDATE positions a
INNER JOIN trips b
ON a.tripname = b.name
SET a.FK_Trips_ID = b.ID
WHERE a.FK_Trips_ID IS NULL
语句,列必须是索引,以避免执行全表扫描,这会导致在大型数据库上执行此操作时速度变慢。
UPDATE