我在这里问这个有点尴尬,但是这里有:
我有两张桌子,你可以在这里看到:
http://img411.imageshack.us/img411/4562/query.jpg
我需要将一个表中的effortid复制到另一个表中,确保值仍然保持校正关系。每个主键都是loggerid和amp;的组合。约会时间。最好的方法是什么?
提前致谢,不要取笑:)
答案 0 :(得分:1)
将其更改为更新查询。连接应该正常运行,但不会添加缺少的行。要做到这一点,您将使用附加查询,就像您已设置,但使用左连接和空值检查。下面的示例使用驻留在LogSiteID表中的信息更新LogID表。
将记录器站点ID中的缺失记录追加到LogID
INSERT INTO logID ( [Datetime], loggerid, temp, effortid )
SELECT ls.datetime, ls.loggerid, ls.temp, ls.effortid
FROM logID AS l RIGHT JOIN [Logger Site ID] AS ls ON (l.temp = ls.temp) AND (l.loggerid = ls.loggerid) AND (l.Datetime = ls.datetime)
WHERE (((l.loggerid) Is Null));
将记录器站点ID更改为LogID
UPDATE logID AS l INNER JOIN [Logger Site ID] AS ls ON (l.Datetime = ls.datetime) AND (l.temp = ls.temp) AND (l.loggerid = ls.loggerid) SET l.effortid = [ls].[effortid];