Субд лекции

Темы:

Запросы

FROM а_сотрудники, б_разработки;

Чаще всего при создании запросов используется тип соединения INNER JOIN, при котором соединенная таблица будет включать только те строки, для которых есть соответствующие друг другу значения полей связи в обеих таблицах.

Результат соединения типа INNER JOIN для приведенных выше таблиц представлен ниже.

Таб_ном

ФИО

Продукт

01

Диго

П2

01

Диго

П1

02

Афанасьев

ПЗ

Этот запрос показывает разработки, выполненные сотрудниками фирмы X.

На SQL такой запрос будет иметь следующий вид:

SELECT а_сотрудники.таб_ном, а_сотрудники.фио, б_разработки.продукт

FROM а_сотрудники INNER JOIN б_разработки

ON а_сотрудники.фио = б_разработки.фио;

При использовании соединения типа LEFT JOIN в результатную таблицу попадают все записи из первой таблицы и только те записи из второй таблицы, для которых есть соответствующие значения полей связи в первой таблице. Соединение типа LEFT JOIN для рассматриваемого примера даст в результате список всех сотрудников фирмы X с указанием их разработок:

Таб_ном

ФИО

Продукт

01

Диго

П2

01

Диго

Ш

02

Афанасьев

ПЗ

03

Сидоров

Null

На SQL такой запрос будет выглядеть следующим образом:

SELECT а_сотрудники.таб_ном, а_сотрудники.фио, б_разработки.продукт

FROM а_сотрудники LEFT JOIN б_разработки

ON а_сотрудники.фио = б_разработки.фио;

При использовании соединения типа RIGHT JOIN, напротив, в результатную таблицу попадают все записи из второй таблицы и только те записи из первой таблицы, для которых есть соответствующие значения полей связи во второй таблице. Соединение типа LEFT JOIN для рассматриваемого примера даст в результате список всех продуктов с указанием разработчика и его табельного номера:

предыдущаяследующая