MySQLデータベースに、「pid」の人のIDとcity
その人が住んでいた都市の名前を含むテーブルがあります。すべての人が住んでいる間に複数の都市に住んでいた可能性があるため、1人の人が複数の都市を持つことができます。そのテーブルのエントリ。
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
私が知りたいことが2つまたは3つあります。
- 「ベルリン」と「ニューヨーク」に住んでいたすべての人の何ですか
pid
(結果は[1、2、4]になるはずです) - かつて「ベルリン」と「ニューヨーク」に住んでいた人々が住んでいた他の都市は何ですか(結果は[「オスロ」、「メキシコシティ」、「バグダッド」になるはずです])
- カウント、それらの都市がテーブルに出現する頻度を取得することはさらに良いでしょう。(結果は["Oslo"-> 2、 "Mexiko City"-> 2、 "Bagdad"-> 1]になります)
これらのことを見つけるために(そしてデータベースサーバーに過度のストレスをかけないように)、クエリを設計するにはどうすればよいですか?