Поиск по сайту:

Я горячий друг истины, но отнюдь не желаю быть ее мучеником (Вольтер).

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

1 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
17 июня 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;

 

Заключение

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

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

Читать  Советы по настройке компонента базы данных MS SQL Server Engine
Если статья понравилась, то поделитесь ей в социальных сетях:

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

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close