在轻微的心理纠结中,我期望这比我想象的更容易。 得到如下表:只有当所有信息都为真时才返回行
create table #x
(
handid int,
cardid int
)
insert into #x
values
(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),
(2,2),(2,3),(2,4),(2,300),(2,400),(2,500),(2,8),
(3,2),(3,3),(3,4),(3,300),(3,400),(3,7),(3,8),
(4,2),(4,300),(4,400),(4,500),(4,6),(4,7),(4,8)
create table #winners(cardid int)
insert into #winners values(300),(400),(500)
select a.*
from
#x a
inner join #winners b
on
a.cardid = b.cardid
这将返回以下:
我只希望这个查询时所有三个cardid
S的存在一个handid
返回行。所以期望的结果集不包括handid
3.
这是一个现实的模型。 实际上#x包含500磨记录。
编辑
确定 - 实际上有赢家这是由组数据从#winners
它具有可变数量的记录。因此,修改原代码以下结果集不应该包括handId
1或handId
3.我也得到了一些不必要的重复记录的结果集:
create table #x
(
handid int,
cardid int
)
insert into #x
values
(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8000),
(2,2),(2,3),(2,4),(2,300),(2,400),(2,500),(2,8),
(3,2),(3,3),(3,4),(3,300),(3,400),(3,7),(3,8),
(4,2),(4,300),(4,400),(4,500),(4,6),(4,7),(4,8)
create table #winners(winningComb char(1), cardid int)
insert into #winners values('A',300),('A',400),('A',500),('B',8000),('B',400)
select a.*
from
#x a
inner join #winners b
on
a.cardid = b.cardid
看起来像错误的桌子设计。可能是'handid,card1id,card2id,card3id'会更适合这个需求。 – Oded
这是关系部门的名称。 500米记录你有什么指标?每只手平均有多少只cardids?表中共有多少种不同的cardids?你通常会尝试匹配多少个?根据这个问题的答案,你可能会更好地做重复连接而不是一组。 –
看起来像我最好**编辑** OP! – whytheq