10章結合
ここまでの内容で、5章で紹介した内部結合がどのようなものであるかがしっかり理解できたと思います。本章では、外部結合やクロス結合を含め、テーブルを結合する他の方法に焦点を合わせます。
10.1 外部結合
ここまでの例はすべて複数のテーブルを扱うものであり、結合条件がテーブルの行から一致するものを見つけられないケースについては考慮してきませんでした。たとえば、inventory
テーブルにはレンタル可能な映画ごとに行が1つ含まれていますが、film
テーブルの1,000本の映画のうち、inventory
テーブルに1つ以上の行が含まれているのは958本だけです。残りの42本の映画はレンタルできないため(おそらく数日以内に入荷する新作でしょう)、inventory
テーブルでは、それらのIDは見つかりません。これら2つのテーブルを結合し、各映画の在庫(コピー)の数を数えてみましょう。
mysql>SELECT f.film_id, f.title, count(*) num_copies
->FROM film f
->INNER JOIN inventory i
->ON f.film_id = i.film_id
->GROUP BY f.film_id, f.title;
+---------+-----------------------------+------------+ | film_id | title | num_copies | +---------+-----------------------------+------------+ | 1 | ACADEMY DINOSAUR | 8 | | 2 | ACE GOLDFINGER | 3 | ...
Get 初めてのSQL 第3版 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.