SQL Self Join
Что такое Self Join в SQL?
Самостоятельное объединение - это объединение, в котором таблица объединяется сама с собой (что также называется унарными отношениями), особенно когда таблица имеет FOREIGN KEY, который ссылается на свой собственный PRIMARY KEY. Присоединение к самой таблице означает, что каждая строка таблицы объединяется с самим собой и со всеми остальными строками таблицы.
Самостоятельное объединение можно рассматривать как объединение двух копий одной и той же таблицы. Таблица на самом деле не копируется, но SQL выполняет команду, как если бы она была.
Синтаксис команды для присоединения таблицы к себе почти такой же, как и для объединения двух разных таблиц. Чтобы отличать имена столбцов друг от друга, используются псевдонимы для фактического имени таблицы, поскольку обе таблицы имеют одно и то же имя. Псевдонимы имен таблиц определены в предложении FROM оператора SELECT. Смотрите синтаксис:
ВЫБЕРИТЕ имя.column_name, b.column_name ... ИЗ таблицы 1 а, таблицы 1 б ГДЕ a.common_filed = b.common_field;
Для этого урока мы использовали таблицу EMPLOYEE, которая имеет отношение один ко многим .
Код для создания таблицы EMPLOYEE
Код SQL:
CREATE TABLE employee(emp_id varchar(5) NOT NULL,
emp_name varchar(20) NULL,
dt_of_join date NULL,
emp_supv varchar(5) NULL,
CONSTRAINT emp_id PRIMARY KEY(emp_id) ,
CONSTRAINT emp_supv FOREIGN KEY(emp_supv)
REFERENCESemployee(emp_id));
Структура таблицы
В таблице EMPLOYEE, показанной выше, emp_id является первичным ключом. emp_supv - это внешний ключ (это идентификатор сотрудника руководителя).
Если нам нужен список сотрудников и имена их руководителей, нам нужно присоединиться к таблице EMPLOYEE, чтобы получить этот список.
Одинарное отношение к работнику
Как сотрудники относятся к себе:
- Сотрудник может сообщить другому сотруднику (руководителю).
- Сотрудник может контролировать себя (т. Е. Ноль) для многих сотрудников (подчиненных).
У нас есть следующие данные в таблице РАБОТНИКА.
Приведенные выше данные показывают:
- Руководитель Унната Найяра - Виджес Сетти
- Анант Кумар и Винод Ратор также могут сообщить Вийесу Сетти.
- Ракеш Патель и Мукеш Сингх находятся под надзором Уннита Найара.
Пример SQL SELF JOIN
В следующем примере мы будем использовать таблицу EMPLOYEE дважды, а для этого мы будем использовать псевдоним таблицы.
Чтобы получить список сотрудников и их руководителей, использовался следующий оператор SQL:
Код SQL:
SELECT a.emp_id AS "Emp_ID",a.emp_name AS "Employee Name",
b.emp_id AS "Supervisor ID",b.emp_name AS "Supervisor Name"
FROM employee a, employee b
WHERE a.emp_supv = b.emp_id;
Выход:
Выводы указанного оператора SQL, показанного здесь, взяты с использованием Oracle Database 10g Express Edition.
Смотрите также:
Упражнения по SQL
- Упражнения по SQL, практика, решение
- SQL Получить данные из таблиц [33 Упражнения]
- Булевы и реляционные операторы SQL [12 упражнений]
- Подстановочные знаки SQL и специальные операторы [22 упражнения]
- Агрегатные функции SQL [25 упражнений]
- Вывод запроса форматирования SQL [10 упражнений]
- SQL-запросы к нескольким таблицам [7 упражнений]
- ФИЛЬТРАЦИЯ И СОРТИРОВКА в базе данных персонала [38 упражнений]
- SQL СОЕДИНЯЕТ
- SQL ПОДПИСИ
- SQL Union [9 упражнений]
- SQL View [16 упражнений]
- Управление учетными записями пользователей SQL [16 упражнение]
- База данных фильмов
- ОСНОВНЫЕ запросы к базе данных фильмов [10 упражнений]
- ПОДПИСКИ на фильм База данных [16 упражнений]
- ПРИСОЕДИНЯЕТСЯ к базе данных фильма [24 упражнения]
- Футбольная база
- Вступление
- ОСНОВНЫЕ запросы по футболу базы данных [29 упражнений]
- ПОДПИСКИ по футбольной базе данных [33 упражнения]
- База данных больницы
- База данных сотрудников
- ОСНОВНЫЕ запросы к базе данных сотрудников [115 упражнений]
- БРОНИРОВАНИЕ на сотрудника База данных [77 Упражнения]
- Еще не все!
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущий: Присоединить стол к себе
Далее: Объединение таблиц через ссылочную целостность
Новый контент: Composer: менеджер зависимостей для PHP , R программирования