Database
 sql >> Database >  >> RDS >> Database

Join SQL

I join sono uno strumento molto potente. Ricordi l'algebra relazionale dal modulo introduttivo del database?

I join sono algebra relazionale applicata .

Supponiamo di avere 2 tavoli, people e 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
);

Aggiungiamo alcuni dati:

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');

Ora diciamo che vogliamo mettere in correlazione le due tabelle, perché la polizia ha impedito a Roger di guidare, sembra giovane e vuole conoscere la sua età dal loro database.

Roger è il mio cane, ma supponiamo che i cani possano guidare le auto.

Possiamo creare un join con questa sintassi:

SELECT age FROM people JOIN cars ON people.name = cars.owner WHERE cars.model='Mustang';

Otterremo questo risultato indietro:

 age 
-----
   8

Che cosa sta succedendo? Stiamo unendo i due tavoli auto su due colonne specifiche:name dalle people tabella e owner dalle cars tabella.

I join sono un argomento che può crescere in complessità perché ci sono molti diversi tipi di join che puoi usare per fare cose più elaborate con più tabelle, ma ecco l'esempio più semplice.