愚蠢的SQL错误

时间:2010-10-29 15:09:30

标签: sql android sqlite

我有这个sql语句:

SELECT game.game_id FROM game, userGame WHERE userGame.user_id = 1
AND userGame.game_id != game.game_id;

我得到了这个:

1
1
2
2
3
3
4
4
4
5
5
5

我正在Android 2.1上的Sqlite3数据库上运行该语句。

表格是:

USERGAME
--------
userId
gameId
more_columns

GAME
-----
gameId
more_columns

如何解决此错误?

更新
我希望得到所有游戏的id,当userId = 1时,他们不在usergame表中。

感谢。

3 个答案:

答案 0 :(得分:1)

不存在语法:

select gameID
from game g
where not exists
(select null from usergame ug 
 where g.gameID = ug.gameID and ug.userID = 1)

答案 1 :(得分:0)

我不确定Sqlite语法,但你可以试试这样的东西。也许其他人可以理顺语法?

SELECT  *
FROM    game a left outer join usergame b on a.gameId = b.gameId and b.userId = 1
WHERE   b.gameId IS NULL

OR

SELECT  *
FROM    game a, usergame b
WHERE   (a.gameId *= b.gameId AND b.userId = 1)
        AND b.gameId IS NULL

基本上,你说:“给我[游戏]表中的所有游戏,但不包括那个用户ID 1的游戏。”

我不确定这是不是你想要实现的目标。

答案 2 :(得分:0)

SELECT game_id 
  FROM game a  
 WHERE NOT EXISTS (Select 1 
                     from game b, userGame c 
                    where a.game_id=b.game_id and b.game_id=c.game_id and c.user_id=1)