我在 MySQL 数据库中有一个表,其中包含人的 ID 'pid' 和city
这些人居住的城市的名称。由于每个人在他/她的生活中可能住在多个城市,一个人可以拥有多个该表中的条目。
PID | CITY
1 | Berlin
1 | New York
2 | Berlin
2 | Oslo
2 | New York
2 | Mexiko City
3 | Oslo
4 | Berlin
4 | Oslo
4 | Bagdad
4 | New York
4 | Mexiko City
我想知道两/三件事:
- 那些
pid
住在“柏林”和“纽约”的人是谁(结果应该是 [1, 2, 4]) - 人们居住的其他城市是什么,曾经居住在“柏林”和“纽约”(结果应该是[“奥斯陆”,“墨西哥城”,“巴格达”])
- 获得计数会更好,这些城市在表格中出现的频率。(结果应该是 ["Oslo" -> 2 , "Mexiko City" -> 2, "Bagdad" -> 1])
我如何设计我的查询,找出这些东西(而不是让我的数据库服务器压力过大)?