我有以下2个表格:
*newbatting* *newmaster*
playerID playerID
playerName playerName
yearID
h
ab
avgBat
“newbatting”表有相同playerID的多行,但没有附加名称。我需要能够使用与playerID相对应的适当名称填充每一行。有没有人有机会向我解释如何将playerName从一个表复制到另一个表?任何解释都会非常感激。感谢。
答案 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)
您可以使用一些INSERT
和SELECT
语句执行此操作。
就像
Ì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对表进行别名时,您可以轻松查看数据来自和去往的位置,这样可以使字段保持不明确状态,以便数据库知道您要更新的内容以及您正在谈论的字段约。