Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Предложение JOIN общие правила

Соединения позволяют извлекать записи из двух (или более) логически связанных таблиц в один результирующий набор данных. Для выполнения такой операции можно использовать описанную здесь инструкцию JOIN стандарта ANSI, или так называемое mema соединение (theta join). Тета соединения, в которых для определения критерия фильтрации данных используется предложение WHERE, являются «старым» способом соединения.

Соединения также можно создавать при помощи предложения WHERE. Этот метод часто называется тета соединением.

Например, у вас может быть таблица с именем employee, в которую записывается информация обо всех сотрудниках, поступающих в вашу компанию. В таблице employee, однако, не содержится подробной информации о работе, которую выполняет сотрудник. Вместо этого в таблице employee содержится только идентификатор работы (jobid). Вся информация о работе, например ее название (title) и описание (description), содержится в таблице, которая называется job. При помощи предложения JOIN вы легко можете извлечь столбцы из обеих таблиц в один результирующий набор записей. В следующих примерах запросов иллюстрируется разница между тета соединением и инструкцией JOIN стандарта ANSI.

// бета-соединение
SELECT
emp_lname,
emp_fname,
job_title
FROM employee, jobs
WHERE employee.job_id=jobs. job_id;

// ANSI соединение
SELECT
emp_lname,
emp_fname,
job_title
FROM employee
JOIN jobs ON employee.job_id=jobs.job_id;

Если в одном запросе вы ссылаетесь на несколько столбцов, имена этих столбцов не должны быть двусмысленными. Иными словами, столбцы должны либо быть уникальными, либо на них нужно ссылаться при помощи идентификатора таблицы. В приведенном выше примере обе таблицы содержат столбец jobid, поэтому к ссылке на этот столбец нужно добавлять идентификатор таблицы. Те столбцы запроса, которые существуют не в обеих таблицах, не обязательно сопровождать идентификатором таблицы. Однако подобные запросы очень сложно читать. Ниже приводится лучший вариант предыдущего примера с ANSI соединением, поскольку в нем для обращения к таблице используется краткий и легкий для чтения псевдонима.

SELECT
е.emp_lname,
е.emp_fname,
j.jobjtitle
FROM employee AS e
JOIN jobs AS j ON e.job.id=j.job_id;

Предыдущие примеры ограничивались эквисоединениями, то есть соединениями со знаком равенства (=). Однако вы можете использовать и большинство других операторов сравнения. В частности, можно использовать соединения со знаками >, =,

Источник