具有多个表的SQLite列信息传输

时间:2019-06-07 20:01:50

标签: sql sqlite csv

我想将数据列从CSV文件传输到SQLite数据库表(匹配)中的列。

CSV文件(EPL13-14数据)详细列出了2013-14 EPL赛季每场比赛的结果。有一个“ Hometeam”列,列出了本赛季每场比赛的Hometeam名称。 ---> EPL13-14Data.Hometeam

我已经在数据库中创建了一个表(团队),该表为每个团队名称分配了唯一的TeamID(整数)。此“ TeamID”列是主键-> Teams.TeamID

我创建了一个表(比赛),该表为每个赛季的比赛提供了简化的信息。我在Matches表中创建了“ HomeTeamID”列。 ----> Matches.HomeTeamID

我想将HomeTeam列的信息从EPL13-14Data CSV文件传输到数据库中的Matches表,*但我想将与球队名称相对应的唯一TeamID输入到Matches表中,而不是团队本身的名称。在“比赛”表中,“ HomeTeamID”列是与“ Teams.TeamID”列相对应的外键。

这是我希望执行的转换路径

EPL13-14Data.Hometeam-> Teams.Name-> Teams.TeamID-> Matches.HomeTeamID

SQLite3.0

SELECT Teams.TeamID 
INTO Matches.HomeTeamID
FROM Teams
WHERE EPL_DATA.Hometeam = Teams.Name;

尝试运行此代码时收到错误消息,不确定使用哪个SELECT ... INTO代码或使用哪个INSERT ... SELECT代码

1 个答案:

答案 0 :(得分:0)

我相信您既不需要,又想更新适当匹配的HomeTeamID列。

所以你想要一些类似的东西

UPDATE Matches 
  SET Matches.HomeTeamId = (SELECT Teams.TeamID FROM Teams WHERE EPL.DATA.Hometeam = Teams.Name) 
WHERE your_where_clause_to_identify_the respective_match_to_be_updated