[英]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.