繁体   English   中英

仅当所有其他具有相同值的条目都存在并且匹配时,才如何选择列的值? (MYSQL)

[英]How to select a column's value, only if all other entries with the same value exist and match? (MYSQL)

标题有点凌乱,但是这里有一个例子,假设我们有桌子:

| name   | room |  
=================
| John   | 4    |  
| John   | 6    |    
| John   | 9    |  
| Smith  | 4    |  
| Smith  | 6    |  
| Brian  | 4    |  
| Brian  | 6    |  
| Brian  | 9    | 

我要选择John和Brian,因为他们都恰好有4、6和9号房间,但没有Smith,因为他没有9号房间。(如果我们只有另一个人,只有4号和6号房间,那么它就是d选择其他人和史密斯)。

我知道我需要进行某种相关查询,但是我不确定如何实际执行该查询

for a check for b

如果您要使用完全相同的房间名称组,我建议使用group_concat()

select rooms, group_concat(name) as names
from (select name, group_concat(room order by room) as rooms
      from t
      group by name
     ) n
group by rooms;

如果只希望使用多个名称的组合,则将having count(*) > 1到外部select

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM