Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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 SQL-是否有方法检测某个值是否不存在于按其他列的值分组的列中?_Mysql_Sql_Database_Group By_Db2 - Fatal编程技术网

Mysql SQL-是否有方法检测某个值是否不存在于按其他列的值分组的列中?

Mysql SQL-是否有方法检测某个值是否不存在于按其他列的值分组的列中?,mysql,sql,database,group-by,db2,Mysql,Sql,Database,Group By,Db2,我有一张这样的桌子: Name Toys present A1 ------ Dinosaur-1 A1 ------ Dinosaur-2 A1 ------ Dinosaur-3 A1 ------ Dinosaur-1 A1 ------ Dinosaur-5 A2 ------ Dinosaur-1

我有一张这样的桌子:

Name              Toys present

A1     ------      Dinosaur-1        
A1     ------      Dinosaur-2        
A1     ------      Dinosaur-3   
A1     ------      Dinosaur-1    
A1     ------      Dinosaur-5    
A2     ------      Dinosaur-1       
A2     ------      Dinosaur-2      
A2     ------      Dinosaur-3     
A3     ------      Dinosaur-2     
A3     ------      Dinosaur-2    
A3     ------      Dinosaur-2    
A4     ------      Dinosaur-3    
A4     ------      Dinosaur-3    
A5     ------      Dinosaur-1    
A5     ------      Dinosaur-1    
A5     ------      Dinosaur-1
是否有一个值可以返回没有任何“恐龙1”玩具的名称? 在上面的示例中,这将是“A3”和“A4”。我很难过滤出一个可能有多个玩具的名字是否有这个特定的玩具或有。我尝试过分组和有条款,也尝试过使用CTE,但没有成功


请给我建议,谢谢

您可以按
名称
分组,并对没有
玩具
名为
恐龙-1'
的组进行筛选,如下所示:

select name
from mytable
group by name
having max(toy = 'Dinosaur-1') = 0
当MySQL在数值上下文中对表达式
toy='恐龙-1'
求值时,返回
0
表示false,返回
1
表示true;因此,最大值
0
表示组中没有行满足该条件

注意:如果您正在运行DB2(也标记了DB2),则可以将
having
子句更改为:

having max(case when toy = 'Dinosaur-1' then 1 else 0 end) = 0