Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图根据mysql中100%匹配的一组记录查找单个记录_Mysql_Sql - Fatal编程技术网

试图根据mysql中100%匹配的一组记录查找单个记录

试图根据mysql中100%匹配的一组记录查找单个记录,mysql,sql,Mysql,Sql,我一直在追查这件事。我只有一个表(在本例中保持简单) 这是一个一对多关系,此表是此联接中的“多” 用户ie:John Smith的用户ID可能为10。根据特定记录的实例,每条记录可以有一个skipped=1或skipped=0 下面是数据的简单分解 1 | 10 | 1 2 | 10 | 0 3 | 10 | 1 4 | 10 | 0 所以这个用户在那里有4次。2条记录显示已跳过(1),2条记录显示未跳过(0) 我需要创建一个查询来查找100%跳过的用户。所以一个看起来像这样的人: 1 | 1

我一直在追查这件事。我只有一个表(在本例中保持简单)

这是一个一对多关系,此表是此联接中的“多”

用户ie:John Smith的用户ID可能为10。根据特定记录的实例,每条记录可以有一个skipped=1或skipped=0

下面是数据的简单分解

1 | 10 | 1
2 | 10 | 0
3 | 10 | 1
4 | 10 | 0
所以这个用户在那里有4次。2条记录显示已跳过(1),2条记录显示未跳过(0)

我需要创建一个查询来查找100%跳过的用户。所以一个看起来像这样的人:

1 | 11 | 1
2 | 11 | 1
3 | 11 | 1
4 | 11 | 1
如果跳过的值为0,则我不希望该用户。用户可以混合(跳过是和否),所以我需要找到一个100%跳过的用户。我需要它按UserID分组,或者至少在找到时对其进行不同的处理,这样我就可以得到单个用户(没有DUP)。为了得到这个结果,我一直在绞尽脑汁地研究分组比、HAVINGS、COUNTs和summa,但我一直在关注查询的100%部分

我使用的是MySQL 5.1.56

如有任何建议,我们将不胜感激

谢谢!
汉字

sum(跳过)
就足够了,不是吗?是的,在这种情况下,跳过的只能有一个布尔值,你是对的我相信你需要一个与众不同的。。。OP说:“我需要它按用户ID分组,或者至少在找到时对它进行不同的处理,这样我就得到了单个用户(没有DUP)。”更改。要求一开始并不存在
1 | 11 | 1
2 | 11 | 1
3 | 11 | 1
4 | 11 | 1
select userid 
from table
group by userid
having count(userid) = sum(if(skipped = 1,1,0))
select distinct userid
from table
where userid not in
(select userid from table where skipped = 0)