Joins är ett mycket kraftfullt verktyg. Kommer du ihåg relationalgebra från databasens intromodul?
Joins är tillämpad relationalgebra .
Anta att du har 2 tabeller, people
och 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 lägger till några 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');
Säg nu att vi vill korrelera de två tabellerna, eftersom polisen stoppade Roger att köra, ser ung ut och vill veta hans ålder från deras databas.
Roger är min hund, men låt oss anta att hundar kan köra bil.
Vi kan skapa en join med denna syntax:
SELECT age FROM people JOIN cars ON people.name = cars.owner WHERE cars.model='Mustang';
Vi får tillbaka det här resultatet:
age
-----
8
Vad händer? Vi sammanfogar de två bordsbilarna i två specifika kolumner:name
från people
tabell och owner
från cars
bord.
Joins är ett ämne som kan växa i komplexitet eftersom det finns många olika typer av sammanfogningar som du kan använda för att göra snyggare saker med flera bord, men här är det mest grundläggande exemplet.