結合は非常に強力なツールです。データベースイントロモジュールの関係代数を覚えていますか?
結合は適用された関係代数です 。
people
という2つのテーブルがあるとします。 およびcars
:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL PRIMARY KEY
);
CREATE TABLE cars (
brand CHAR(20) NOT NULL,
model CHAR(20) NOT NULL,
owner CHAR(20) NOT NULL PRIMARY KEY
);
いくつかのデータを追加します:
INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (8, 'Roger');
INSERT INTO cars VALUES ('Ford', 'Fiesta', 'Flavio');
INSERT INTO cars VALUES ('Ford', 'Mustang', 'Roger');
ここで、警察がロジャーの運転を止め、若く見え、データベースから彼の年齢を知りたいので、2つのテーブルを相互に関連付けたいとしましょう。
ロジャーは私の犬ですが、犬が車を運転できるとしましょう。
参加を作成できます この構文で:
SELECT age FROM people JOIN cars ON people.name = cars.owner WHERE cars.model='Mustang';
この結果が返されます:
age
-----
8
何が起こっている? name
という2つの特定の列で2つのテーブルカーを結合しています。 people
から テーブル、およびowner
cars
から テーブル。
結合は、複数のテーブルでより洗練された処理を行うために使用できるさまざまな種類の結合があるため、複雑さが増す可能性のあるトピックですが、これが最も基本的な例です。