我有一个问题...我有三个表:game
、gamelist
和player
。 game
表包含游戏,gamelist
包含所有想玩游戏的玩家,player
表包含所有玩家。
我做了这个查询:
var query1 = from es in gr.games
join esh in gr.gameLists on es.id equals esh.gameID
where es.holdID == play.holdID && esh.playerID.HasValue && esh.playerID == personID
select es;
此查询获取玩家已注册的所有游戏...但我如何获取他未注册的所有游戏?有什么提示或想法吗?
最佳答案
您可以简单地反转加入条件,即选择gameLists
中不的game
项> 表格。
但是,由于 LINQ 仅支持 equi-join ,您必须使用 cross join 来表达它使用 where
子句过滤:
var results = from es in gr.games
from esh in gr.gameLists
where es.id != esh.gameID &&
esh.playerID.HasValue && esh.playerID == personID
select es;
关于.net - 需要那些不在表中的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8398263/