2013-03-04 87 views
0

我有3个文件的csv导入程序,这样我的游戏统计信息可以快速更新。过了一段时间,我意识到它将相同的数据插入到数据库的多个列中。游戏统计更新。 SQL

我正在尝试使用UPDATE语句更新其中一个表格中的数据。

的五列我需要固定的data1, data2, data3, hits, totalnum.

如果用户是有效的球员,然后我需要命中和totalnum设置为0
如果他们是不是一个有效的球员比我更需要data1, data2data3设为0.

要检查用户是否有效,我需要访问用户表并查找用户详细信息并检查is_valid列。

我可能必须为此做2个查询,1个用于有效用户,1个用于无效用户。

我到目前为止没有检查用户表,我不知道该怎么做。

UPDATE game_stats 
SET data1 = 0, 
data2=0, 
data3=0 
WHERE data1 <= 1 AND data2 <= 1 AND data3 <= 1 

用户表
标识,FNAME,LNAME,is_valid,细节

Game_stats
标识,用户标识,数据1,数据2,数据3,命中,totalnum

请会有人帮助我这样做?

+2

而你的问题是......? – 2013-03-04 15:38:43

回答

4

这应该理清有效用户

UPDATE game_stats gs 
SET gs.data1 = '0', gs.data2= '0', gs.data3= '0' 
WHERE exists 
(SELECT u.id 
FROM users u 
WHERE u.is_valid='true' AND 
u.id = gs.userid) 

这应该理清非合法用户

UPDATE game_stats gs 
SET gs.hits = '0', gs.totalnum = '0' 
WHERE exists 
(SELECT u.id 
FROM users u 
WHERE u.is_valid !='true' AND 
u.id = gs.userid) 

希望帮助

+0

看起来像我需要干杯 – 2013-03-04 15:46:36

+0

工作:)再次欢呼 – 2013-03-04 15:52:10