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')
这给了我一个类别为A或B的游戏。但是我想要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
)