Поиск по сайту:
Истина есть дочь времени, а не авторитета (Ф. Бэкон).

Когда использовать Self Join в MySQL и примеры

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
17.06.2021
Когда использовать Self Join в MySQL и примеры

Self Join в MySQL – это тип соединения SQL, позволяющий присоединить таблицу к самой себе. Он работает с использованием других типов соединения, таких как предложение внутреннего или левого соединения, для объединения строк на основе указанных условий.

Из этой статье Вы узнаете, как использовать самосоединение в MySQL для слияния таблицы с самой собой и создания настраиваемых данных.

 

Основное использование

Self Join в MySQL использует псевдонимы таблиц, чтобы гарантировать, что вы не повторяете одну и ту же таблицу более одного раза в одном операторе.

Примечание
Если вы не знакомы с псевдонимами таблиц, обратите внимание на другой наш учебник, который полностью объясняет эту концепцию.

 

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

SELECT alias1.cols, alias2.cols FROM tbl1 alias1, tbl2 alias2 WHERE [condition]

Примеры использования

Давайте воспользуемся примерами, чтобы понять, как выполнять самостоятельное присоединение к MySQL. Предположим, у вас есть база данных со следующей информацией (см. Полный запрос ниже)

DROP SCHEMA IF EXISTS self;
CREATE SCHEMA self;
USE self;
CREATE TABLE users(
id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(255),
email VARCHAR(255),
payment_id INT,
subscription INT
);
INSERT INTO users(first_name, email, payment_id, subscription) VALUES ("Valerie G. Phillip", "ValerieGPhillip@teleworm.us", 10001, 1), ("Sean R. Storie", "SeanRStorie@rhyta.com", 10005, 2), ("Bobby S. Newsome", "BobbySNewsome@armyspy.com", 100010, 5);

Мы начнем с ВНУТРЕННЕГО (INNER JOIN) соединения и, наконец, с левого соединения.

 

Self Join с помощью INNER JOIN

Приведенный ниже запрос выполняет INNER JOIN с таблицей, созданной выше.

SELECT al1.* FROM users al1 INNER JOIN users al2 ON al1.subscription = al2.subscription ORDER BY id DESC;

Self Join с использованием LEFT JOIN

Пример запроса ниже объясняет, как мы можем использовать самостоятельное соединение с левым соединением.

SELECT (CONCAT(al1.first_name, ' -> ', al2.email)) AS details , al1.payment_id FROM users al1 LEFT JOIN users al2 ON al1.id=al2.id;

 

Читать  Может ли иметь таблица пространство WASTED/FRAGMENTED без удаления данных (DELETE) в MySQL?

Заключение

В этой статье вы узнали, как можно использовать Self Join в MySQL для соединения таблицы с самим собой.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Рекомендуемое
Тот факт, что меры по социальному дистанцированию наконец отменяются, не…

Спасибо!

Теперь редакторы в курсе.