Name Place visited
Ash New york
Bob New york
Ash Chicago
Bob Chicago
Carl Chicago
Carl Detroit
Dan Detroit
上面是示例表。输出应该是两个一起访问过的地方的名字。即输出应该是Ash和Bob,因为Ash所访问的地方也Bob所访问。
输出:
Name1 Name2
Ash Bob
使用MySQL甚至关系代数对此进行查询是什么?
答案 0 :(得分:0)
最简单的方法是使用group_concat()
。假设没有重复,
select places, group_concat(names) as names
from (select name, group_concat(place order by place) as places
from t
group by name
) t
group by places
having count(*) > 1;
这将返回在同一行中具有完全相同位置的所有名称。名称将以逗号分隔。