前回の記事では、SQLのnull値、およびnull値がもたらす可能性のある問題と解決策について説明しました。
これまでのところ、クエリは単一のテーブルからデータを取得しています。この記事の冒頭で、複数のテーブルから関連データを取得する方法について説明します。リレーショナルデータベースでは、通常、さまざまな情報とそれらの間の接続が複数のテーブルに格納されます。製品表、ユーザー表、ユーザー注文表、関連する注文詳細表など。注文を表示する場合は、これらのテーブルから注文に関するすべての情報を同時に検索する必要があります。
SQLでは、マルチテーブル結合(JOIN)クエリを使用して、複数のテーブルの関連データを取得できます。
接続構文
SQLの開発中に、結合クエリの2つの構文が現れました。
- ANSI SQL / 86標準。FROMキーワードとWHEREキーワードを使用して、テーブルの接続を指定します。
- ANSI SQL / 92標準。JOINおよびONキーワードを使用してテーブルの接続を指定します。
従業員テーブル(employee)には、従業員情報と部門番号が格納されていますが、部門情報は部門テーブル(department)に格納されています。従業員の部署の名前を知りたい場合は、従業員テーブルと部署テーブルの両方をクエリする必要があります。この問題は、FROMとWHEREを使用して解決できます。
SELECT d.dept_id, e.dept_id, d.dept_name, e.emp_name
FROM employee e, department d
WHERE e.dept_id = d.dept_id;
その中で、FROM句のコンマは2つのテーブルを接続するために使用されます。同時に、WHERE句で接続を指定するための条件は、従業員テーブルの部門番号(e.dept_id)が部門テーブルの番号(d.dept_id)と等しいことです。さらに、エイリアス