Sql 如何查询:选择A、B、C类游戏

Sql 如何查询:选择A、B、C类游戏,sql,nhibernate,hql,Sql,Nhibernate,Hql,我想知道如何有效地运行查询,例如: select game from Game game inner join game.Categories cat where cat.Name in ('A', 'B') 这给了我一个类别为A或B的游戏。但是我想要A类和B类的游戏。这将在HQL(NHibernate查询语言)中使用,但我也想知道如何在SQL上执行此操作。以下是SQL(假设为T-SQL): 假设MySQL: SELECT g.* FROM game g WHERE EXISTS

我想知道如何有效地运行查询,例如:

select game from Game game 
inner join game.Categories cat
where cat.Name in ('A', 'B')
这给了我一个类别为AB的游戏。但是我想要A类和B类的游戏。这将在HQL(NHibernate查询语言)中使用,但我也想知道如何在SQL上执行此操作。

以下是SQL(假设为T-SQL):


假设MySQL:

SELECT  g.*
FROM    game g
WHERE   EXISTS
        (
        SELECT  NULL
        FROM    categories c
        WHERE   c.name IN ('A', 'B')
                AND c.game = g.id
        LIMIT 1 OFFSET 1
        )

OFFSET
值应该是
列表中
的项数减去
1
,也就是说,如果您查询
('A','B','C')
,那么您应该使用
OFFSET 2
,等等。

+1-很好的解决方案。我从来没有想过这样做。
SELECT  g.*
FROM    game g
WHERE   EXISTS
        (
        SELECT  NULL
        FROM    categories c
        WHERE   c.name IN ('A', 'B')
                AND c.game = g.id
        LIMIT 1 OFFSET 1
        )