簡體   English   中英

如何查詢:選擇A,B和C類游戲

[英]How to query: Select games in categories A, B and C

我想知道如何有效地運行查詢,例如:

select game from Game game 
inner join game.Categories cat
where cat.Name in ('A', 'B')

這使我的游戲類別為AB。 但是我想要A類 B類的游戲。 這將在HQL(NHibernate查詢語言)中使用,但我也想知道如何在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值應為IN列表中的項目數減1 ,也就是說,如果您查詢('A', 'B', 'C') ,則應使用OFFSET 2等。

這是SQL(假設使用T-SQL):

/* Defining my own schema... */
declare @games table
(
 GameID int, Game varchar(20)
)

declare @gameCategories table
(
 GameID int, Category char(1)
)

insert into @games values (1, 'Risk')
insert into @games values (2, 'Spades')
insert into @games values (3, 'Cribbage')

insert into @gameCategories values (1, 'B')
insert into @gameCategories values (2, 'C')
insert into @gameCategories values (3, 'C')
insert into @gameCategories values (3, 'B')

select g.Game
from @games g
 inner join @gameCategories b on g.GameID = b.GameID and b.Category = 'B'
 inner join @gameCategories c on g.GameID = c.GameID and c.Category = 'C'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM