外部キーで結びついたテーブルを JOIN (結合)する
この2つのテーブルを結合して、データをさらに分析してみましょう。
SQL の結合については、データサイエンスのためのSQL入門 コース(最後の演習)または PostgreSQLのデータ結合 で学んだことがあるかもしれません。
結合の基本的な構造をおさらいしておきましょう。
SELECT ...
FROM table_a
JOIN table_b
ON ...
WHERE ...
外部キーと主キーは結合クエリに必須ではありませんが、何が得られるかを明示してくれるため、非常に役立ちます。たとえば、テーブルAから参照されているレコードは必ずテーブルBに存在することになります。そのため、テーブルAから結合すれば、テーブルBで必ず対応するレコードが見つかります。もし見つからない場合は、外部キー制約に違反していることになります。
この演習はコースの一部です
SQL リレーショナルデータベース入門
演習の手順
professorsとuniversitiesをprofessors.university_id = universities.idでJOINしてください。つまり、professorsの外部キーがuniversitiesの主キーと一致するレコードをすべて残します。university_city = 'Zurich'でフィルタリングしてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
-- Select all professors working for universities in the city of Zurich
SELECT professors.lastname, universities.id, universities.university_city
___ professors
___ ___
ON ___.university_id = universities.___
___ universities.university_city = ___;