Соединения SQL

Как выполнить простое соединение между двумя таблицами базы данных

Объединения - очень мощный инструмент. Помните реляционную алгебру из вводного модуля базы данных?

Присоединенияприкладная реляционная алгебра.

Предположим, у вас есть 2 стола,peopleи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');

Теперь предположим, что мы хотим сопоставить две таблицы, потому что полиция остановила Роджера за рулем, выглядит молодо и хочет узнать его возраст по своей базе данных.

Роджер - моя собака, но давайте предположим, что собаки умеют водить машины.

Мы можем создатьприсоединитьсяс этим синтаксисом:

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

Мы вернем этот результат:

 age 
-----
   8

What is happening? We are joining the two tables cars on two specific columns: name from the people table, and owner from the cars table.

Joins are a topic that can grow in complexity because there are many different kind of joins that you can use to do fancier things with multiple tables, but here is the most basic example.


More database tutorials: