2014-02-25 27 views
0

我有两个表:球员和GameLog如下创建/添加外键访问

玩家有(Player_ID,名字,姓氏,位置)

GameLog有(名字,姓氏,PTS,Date_Played)

恐怕设计有点差,但我想现在链接这两个表,所以我想将Player_ID添加到GameLog并使其成为Players表的外键。

有没有办法做到这一点,如果我已经在这两个表中的数据?

所以,如果玩家有:

Player_ID, FirstName, LastName, Position 
1, Kevin, Love, PF 

而且GameLog有:

FirstName, LastName, Pts, Date_Played 
Kevin, Love, 24, 2/25/2014 

我想GameLog成为:

Player_ID, FirstName, LastName, Pts, Date_Played 
1, Kevin, Love, 24, 2/25/2014 

回答

0

是。

这是两种方式来适应这种情况。

首先,您可以添加hte字段,允许空值,然后将其设置为向前移动。

然后,从那里写一个匹配(也许在名称上),允许您填充您可以确定的行。

你可以马上申请FK,因为没有必要有相应的记录。

+0

正是我需要的,谢谢。这加上一个UPDATE查询的窍门。 – fullOfQuestions

0

告诉你结果表明,查询,如:

SELECT players.Player_ID, players.FirstName, 
     players.LastName, gamelog.Pts, gamelog.Date_Played 
FROM gamelog INNER JOIN players ON (gamelog.LastName = players.LastName) 
     AND (gamelog.FirstName = players.FirstName) 

但是,你会好得多创建一个新表:

SELECT players.Player_ID, gamelog.Pts, gamelog.Date_Played 
    INTO gamelog2 
FROM gamelog INNER JOIN players ON (gamelog.LastName = players.LastName) 
    AND (gamelog.FirstName = players.FirstName); 

这将允许你检查新表格,然后将其替换为游戏日志。没有任何理由说明为什么游戏日志应该包含玩家表中的名字,当它有外键,ID时。您可能希望将ID重命名为PlayerID,并将自动编号添加到游戏日志。