使用主表中的值填充表

时间:2014-11-13 01:55:57

标签: mysql

我有以下2个表格:

*newbatting*    *newmaster*
playerID        playerID
playerName      playerName
yearID
h
ab
avgBat

“newbatting”表有相同playerID的多行,但没有附加名称。我需要能够使用与playerID相对应的适当名称填充每一行。有没有人有机会向我解释如何将playerName从一个表复制到另一个表?任何解释都会非常感激。感谢。

4 个答案:

答案 0 :(得分:1)

如果要填充palyerName列,那么这就是您需要的

UPDATE newbatting AS n
INNER JOIN newmaster AS m ON m.playerID = n.playerID
SET n.playerName = m.playerName;

如果您想获取数据集

SELECT n.playerID, n.payname FROM newbatting AS n
INNER JOIN newmaster AS m ON m.playerID = n.playerID

答案 1 :(得分:1)

首先,你真的不应该这样做。 PlayerId上的表之间的关系就足够了。查询时,您可以使用join获取名称:

select nb.*, m.playername
from newbatting nb join
     newmaster m
     on nb.playerid = m.playerid;

如果出于某种莫名其妙的原因,您真的希望在newbatting表中拥有这些冗余数据,您可以做类似的事情:

update newbatting nb join
       newmaster m
       on nb.playerid = m.playerid
     nb.playername = m.playername;

答案 2 :(得分:0)

您可以使用一些INSERTSELECT语句执行此操作。

就像

ÌNSERT INTO table_one (column1) SELECT column2 FROM table_two

请参阅reference

答案 3 :(得分:0)

您可以使用UPDATE语句完成此操作:

UPDATE newbatting nb, newmaster nm SET nb.playerName = nm.playerName WHERE nb.playerID = nm.playerID

这将通过playerID

将newbatting表与newmaster表相关联

对于newmaster表中的每个匹配都会带来playerName

当您使用短名称nb和nm对表进行别名时,您可以轻松查看数据来自和去往的位置,这样可以使字段保持不明确状态,以便数据库知道您要更新的内容以及您正在谈论的字段约。