我有这个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表中。
感谢。
答案 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)