MSAccess-参加
データベースは、相互の論理関係を可能にするデータのテーブルのコレクションです。リレーションシップを使用して、共通のフィールドでテーブルを接続します。テーブルは任意の数のリレーションシップの一部にすることができますが、各リレーションシップには常に正確に2つのテーブルがあります。クエリでは、関係は次のように表されます。Join。
結合とは
結合は、データベース内の2つ以上のテーブルのレコードを組み合わせる方法を指定します。概念的には、結合はテーブルの関係と非常によく似ています。実際、結合は、テーブルとの関係を照会することです。
以下は、この章で説明する2つの基本的なタイプの結合です。
- 内部結合
- 外側の結合
どちらも簡単に作成できます queries design view。
内部結合
今理解しましょう Inner Join −
- 最も一般的なタイプの結合は内部結合であり、これはMicrosoftAccessのデフォルトの結合タイプでもあります。
- 内部結合は、両方のテーブルの結合フィールドが等しい行またはレコードのみを表示します。
- この結合タイプは、これらの共通フィールドとそれに含まれるデータを調べます。一致するものだけが表示されます。

アウタージョイン
何を理解しましょう Outer Join は−
- 外部結合は、1つのテーブルのすべての行と、結合されたフィールドが等しい他のテーブルの行またはレコードのみを表示します。
- つまり、外部結合には、一方のテーブルのすべての行と、もう一方のテーブルの対応する行のみが表示されます。

他の結合タイプもあります-
左外部結合と右外部結合
今理解しましょう Left Outer Join そして Right Outer Join −
- すべての行を表示するテーブルを選択できます。
- 最初のテーブルのすべての行を含む左外部結合を作成できます。

- 2番目のテーブルのすべての行を含む右外部結合を作成できます。

さあ、 Create タブをクリックして、からクエリを作成します Design View。選択するtblProjects そして tblTasks 次のスクリーンショットのように、[テーブルの表示]ダイアログボックスを閉じます。

追加します ProjectName からのフィールド tblProjects、および TaskTitle, StartDate そして DueDate から tblTasks テーブル。

クエリを実行してみましょう。

いくつかのプロジェクトのレコードのみを表示しています。これらのプロジェクトのいくつかには、そのプロジェクトに関連する多くのタスクがあり、この情報はProjectID フィールド。
Microsoft Accessでこのクエリを作成すると、Accessは作成した関係からこの関係を取得します。
デフォルトでは、それはとして知られているものを作成しています Inner Join between these two fields、これら2つのテーブル間で、このようにして、これら2つのテーブルからこの情報を関連付けています。
一致するものだけが表示されているので、このクエリを実行すると、他にも多くのプロジェクトがリストされています。 tblProjects これは、このクエリで設定されたレコードの一部としては表示されません。これは、これら2つのテーブルが、クエリのデフォルトの結合である内部結合を介してどのように結合されるかによるものです。
ただし、関係を変更する場合は、外部結合を作成する、つまり、からのすべてのプロジェクトを表示するとします。 tblProjects、そのテーブルにあるすべてのレコードと、からのすべてのタスク tblTasks—結合プロパティを開きます。これは、リレーションシップラインをダブルクリックするだけで実行できます。

Accessは、[プロパティの結合]ダイアログに左側のテーブル名と右側のテーブル名を表示します。
左側の列名と右側の列名、および最初のラジオボタンは、両方のテーブルの結合フィールドが等しい行のみを含めることです。これは内部結合であり、関係の作成時、結合の作成時にデフォルトで選択されます。クエリ内ですが、変更できます。
他にも2つのオプションがあります。からのすべてのレコードを含めることができますtblProjects、およびからのレコードのみ tblTasks ここで、結合されたフィールドは等しく、これは左外部結合です。
3番目のオプションがあり、tblTasksからのすべてのレコードと、結合されたフィールドが等しく、これがRight OuterJoinであるtblProjectsからのレコードのみを含めます。
これらは、デザインビューから簡単に作成できるさまざまな種類の結合です。2番目のオプションである左外部結合を選択してクリックしますOk。
他のステップを見てみましょう-

関係線を見ると、小さな矢印が ProjectID に tblTasks。このクエリを実行すると、次の結果が表示されます。

ご覧のとおり、関連するタスクがあるかどうかに関係なく、すべてのプロジェクト名が表示されています。また、多数のnullフィールドが表示されます。に関連情報がないため、これはすべて空白になりますtblTasks、これらのフィールドの由来。さあ、Design View もう一度、関係行をダブルクリックします。

[結合プロパティ]ダイアログボックスで、右外部結合用の3番目のオプションを選択し、[ Ok。

今、私たちの関係の線を見てください。小さな矢印がに向かっていることがわかりますProjectID に tblProjects。このクエリを実行すると、次の結果が表示されます。

自己結合
自己結合は、別のタイプの結合です。自己結合は、同じテーブル内の一致するフィールドを関連付けます。たとえば、スーパーバイザフィールドを持つ従業員のテーブルを見てください。スーパーバイザフィールドは、同じテーブル内の別のフィールドに格納されている同じ種類の番号、つまり従業員IDを参照しています。

Kaitlin Rasmussenの上司が誰であるかを知りたい場合は、その上司フィールドに保存されている番号を取得し、その従業員IDフィールドのまったく同じテーブル内で調べて、CharityHendricksが上司であることを知る必要があります。
このテーブルは正規化されていないため、リレーショナルデータベースにとって理想的な構造ではありません。
上司の名前と一緒に従業員の名前をリストするだけのクエリを作成したい場合、自己結合を作成しない限り、それをクエリする簡単な方法はありません。
自己結合を表示するには、次のフィールドを使用してテーブルを作成し、いくつかのデータを入力します。

ここでは、従業員の名、次に上司の名前のリストを再度作成します。からクエリを作成しましょうquery design view。
今、追加します tblEmployees テーブル。

このダイアログボックスを閉じます。
次に、従業員の姓名を追加します。

ここで、このテーブルとそれ自体の間に関係を作成する方法が必要です。そのためには、開く必要がありますthe show table dialog box tblEmployeesをもう一度追加します。

このクエリビューに同じテーブルの別のコピーを作成しました。次に、自己結合を作成する必要があります。これを行うには、でスーパーバイザーをクリックしますtblEmployees テーブルを押したままマウスボタンを押したまま、 EmployeeID そのコピーされたテーブルで— tblEmployees_1。次に、コピーしたテーブルから姓と名を追加します。

クエリを実行すると、次の結果が表示されます。

上司の名前と一緒に従業員の名前が表示されます。そして、これがMicrosoftAccessで自己結合を作成する方法です。