我有一些样本数据,如:
@H_404_2@INSERT INTO mytable ([ID],[FK_ID],[TYPE_ID])
VALUES
(1,10,1),(2,11,(3,2),(4,12,(5,(6,3),(7,14,(8,3)
现在,我在这里尝试通过FK_ID检查每个组中是否具有TYPE_ID值1和&的完全匹配. 2.
所以,预期的输出是这样的:
>(1,1)这应该失败
>在FK_ID组中,我们只有一条记录
>(2,2)这应该通过
>在FK_ID组中,我们有两条记录.
>并且TYPE_ID都匹配1& 2个值.
>(4,3)这也应该失败
>因为我们在这里有3条记录.
>(7,3)这也应该失败
>即使我们有两个确切的记录,它也应该失败,因为这里的TYPE_ID与1& 2个值.
这是我的尝试:
@H_404_2@select * from mytable t1 where exists (select count(t2.TYPE_ID) from mytable t2 where t2.FK_ID = t1.FK_ID and t2.TYPE_ID in (1,2) group by t2.FK_ID having count(t2.TYPE_ID) = 2);这没有按预期工作,因为它也传递FK_ID = 12,它有三个记录.
演示:SQL Fiddle