Joins er et meget kraftfuldt værktøj. Husker du relationel algebra fra databaseintromodulet?
Joins er anvendt relationel algebra .
Antag at du har 2 tabeller, people
og 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
);
Vi tilføjer nogle data:
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');
Sig nu, at vi ønsker at korrelere de to tabeller, fordi politiet stoppede Roger med at køre, ser ung ud og vil vide hans alder fra deres database.
Roger er min hund, men lad os antage, at hunde kan køre bil.
Vi kan oprette et join med denne syntaks:
SELECT age FROM people JOIN cars ON people.name = cars.owner WHERE cars.model='Mustang';
Vi får dette resultat tilbage:
age
-----
8
Hvad sker der? Vi samler de to bordbiler i to specifikke kolonner:name
fra people
tabel og owner
fra cars
tabel.
Joins er et emne, der kan vokse i kompleksitet, fordi der er mange forskellige slags joins, som du kan bruge til at lave mere avancerede ting med flere borde, men her er det mest grundlæggende eksempel.