找回密码
 加入
搜索
查看: 4284|回复: 6

[效率算法] sqlite 表查询 替换问题

  [复制链接]
发表于 2011-5-16 23:44:22 | 显示全部楼层 |阅读模式
代码
_SQLite_Exec(-1, "select fightlog.name from fightlog except select alluser.name from alluser;", '_cb');对比新旧数据,导出不重复的新数据
 _SQLite_SQLiteExe("WX角色108.db", "replace into alluser select name,fight from fightlog where fight.name in (select fightlog.name from fightlog INTERSECT select alluser.name from alluser);", $oOUT)
表1
alluser
name   fight  major
张一     null      null
张二     null      null

表2
fightlog
name  fight
张一     武术


我的思路是,取表2和表1相同的部分,然后回写到表1,
没报错,但也没写进去
 楼主| 发表于 2011-5-17 15:30:11 | 显示全部楼层
自己顶一下吧
发表于 2011-5-17 15:50:48 | 显示全部楼层
我不會 SQLLITE  只會SQL @@

UPDATE 表一 SET 表一.FIGHT=表2.FIGHT FOROM 表2 Where 表一.name=表2.NAME
 楼主| 发表于 2011-5-17 17:38:00 | 显示全部楼层
本帖最后由 lluxury 于 2011-5-17 17:42 编辑
我不會 SQLLITE  只會SQL @@

UPDATE 表一 SET 表一.FIGHT=表2.FIGHT FOROM 表2 Where 表一.name=表2.NAM ...
kk_lee69 发表于 2011-5-17 15:50


谢谢,我试试

!   SQLite.au3 Error
--> Function: _SQLite_Query
--> Query:    UPDATE alluser SET alluser.FIGHT=fightlog.FIGHT FROM fightlog Where alluser.name=fightlog.NAME);
--> Error:    near ".": syntax error
发表于 2011-5-18 14:13:51 | 显示全部楼层
UPDATE alluser SET alluser.FIGHT=(select max(fightlog.FIGHT) FROM fightlog Where alluser.name=fightlog.NAME) where   alluser.FIGHT is null
发表于 2011-5-18 22:11:45 | 显示全部楼层
果然每個資料庫 可以用的語法都不一樣 ><
 楼主| 发表于 2011-5-22 10:44:50 | 显示全部楼层
UPDATE alluser SET alluser.FIGHT=(select max(fightlog.FIGHT) FROM fightlog Where alluser.name=fightl ...
auto 发表于 2011-5-18 14:13



    谢谢,回去试一下这个,我是用联合查询然后生成新表解决的
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-14 14:43 , Processed in 0.081702 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表