繁体   English   中英

SQL从临时表添加到现有表

[英]SQL Add to Existing Table from Temp Table

我正在建立一个篮球统计数据库,并且在SQL中有一张表格,其中包含所有球员所有比赛的总和。 不过,我在添加时遇到了麻烦。 我为每个游戏使用一个临时表,然后将所有临时值添加到玩家的总表中。 我该怎么做? 我尝试了很多方法,每个方法都会引发错误。 这里有一些:

(live_players是临时表,在这里我仅尝试加入points列。)

db.execute("UPDATE players JOIN live_players AS t1 ON players.player_id 
= t1.player_id SET points = points + t1.points")

db.execute("MERGE INTO players USING live_players ON players.player_id 
= live_players.player_id WHEN MATCHED THEN UPDATE 
SET points = points + live_players.points")

这将为您提供player_id和新的live_players(不确定是否可行)中或在players表中具有匹配记录的记录点,以及在当前存在播放器时添加的点数:

SELECT ST1.player_id, case when ST2.points > 0 THEN ST1.points+ST2.points Else ST1.points END as test FROM live_players ST1 LEFT JOIN players ST2 USING(player_id)

根据我们的玩家表的唯一索引,将其与UPDATE操作集成在一起可以使您到达所需的位置。

我认为您的更新声明有误。

您不必直接在update语句后面进行联接,而必须将其放入FROM子句中。

UPDATE table_to_update
SET what_you_want_to_set
FROM define_the_table(s)
WHERE some_restrictions (maybe with sub select)

在这里看看:

如何在SQL中使用JOIN执行UPDATE语句?

或在这里:

使用联接的SQL更新查询

最好,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM