簡體   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