SQL从临时表

时间:2017-12-06 18:15:52

标签: python mysql

我正在创建一个篮球统计数据库,并在SQL中有一个表格,其中包含来自所有游戏的玩家总数。但是,我在添加它时遇到了麻烦。我为每个游戏使用临时表,然后我需要将所有临时值添加到玩家的总表中。我该怎么做?我尝试了很多方法,每个方法都会产生错误。以下是一些:

(live_players是临时表,这里我只是尝试加入点列。)

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")

2 个答案:

答案 0 :(得分:0)

这应该会给你player_id并为live_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操作集成,取决于我们的播放器表的唯一索引,应该可以满足您的需求。

答案 1 :(得分:0)

我认为你的更新声明是错误的。

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

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

看看这里:

How can I do an UPDATE statement with JOIN in SQL?

或在这里:

SQL update query using joins

最佳,