我从Excel将数据导入SQL Server数据库。
将数据插入到未定义主键的tmptable
中。
tmptable
:
course, trainer, jockey, horse, won, pos, date
我想将数据从tmptable
复制到另一个包含主键列的表mastertable
中。
mastertable
:
coursefk, trainerfk, jockeyfk, horsefk, won, pos, date.
后缀为'fk'
的列指的是其他各个表。
我希望在insert into mastertable
期间,脚本会从course
获取tmptable
列的值,并参考表Courses
以获取适当的值放入mastertable
。已创建表之间的主键和外键关系,但我无法创建可实现我想要的脚本。
任何人都可以帮忙。
答案 0 :(得分:2)
您可以join
tmptable
使用其他外键表。
像这样。
INSERT INTO mastertable(coursefk, trainerfk, jockeyfk, horsefk, won, pos, date)
SELECT mastercourse.coursefk, mastertrainer.trainerfk, masterjockey.jockeyfk, masterhorse.horsefk, won, pos, date
FROM tmptable
LEFT JOIN mastercourse ON mastercourse.course = tmptable.course
LEFT JOIN mastertrainer ON mastertrainer.trainer = tmptable.trainer
LEFT JOIN masterjockey ON masterjockey.jockey = tmptable.jockey
LEFT JOIN masterhorse ON masterhorse.horse = tmptable.horse
注意:由于我不知道其他FK表的结构,请替换并使用适当的表名和列名。