-
外部キー制約を使用する方法: 1対多の関係を表現するために、主テーブルと従属テーブルを作成します。従属テーブルには、主テーブルのプライマリキーを外部キーとして参照する列が必要です。これにより、従属テーブルの各レコードは、主テーブルの1つのレコードに関連付けられます。
例えば、以下のようなテーブルがあるとします:
CREATE TABLE Customers ( CustomerID INT PRIMARY KEY, CustomerName VARCHAR(255) ); CREATE TABLE Orders ( OrderID INT PRIMARY KEY, OrderName VARCHAR(255), CustomerID INT, FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) );
この例では、Customersテーブルが主テーブルであり、Ordersテーブルが従属テーブルです。OrdersテーブルのCustomerID列は、CustomersテーブルのCustomerID列を外部キーとして参照しています。これにより、Ordersテーブルの各レコードは、Customersテーブルの1つの顧客に関連付けられます。
-
サブクエリを使用する方法: 1対多の関係を持つテーブルからデータを取得する際に、サブクエリを使用することもできます。これにより、主テーブルと関連するすべての従属テーブルのデータを取得することができます。
例えば、以下のようなクエリを考えてみましょう:
SELECT CustomerName, (SELECT OrderName FROM Orders WHERE Orders.CustomerID = Customers.CustomerID) AS OrderName FROM Customers;
このクエリでは、Customersテーブルから顧客名を取得し、サブクエリを使用して関連する注文名(OrderName)を取得しています。サブクエリ内の条件は、CustomersテーブルのCustomerID列とOrdersテーブルのCustomerID列を比較しています。
これらは、1対多の関係を分析し、コード例を提供するための一般的な方法です。実際のデータベース設計や要件に応じて、さまざまな方法があります。詳細な要件に基づいて、最適な方法を選択することが重要です。