Поиск по сайту:
В нашем мире опасность всегда угрожает тем, кто ее боится (Б. Шоу).

Когда использовать 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 использует псевдонимы таблиц, чтобы гарантировать, что вы не повторяете одну и ту же таблицу более одного раза в одном операторе.

[gn_box title=»Примечание» box_color=»#fff08c» title_color=»#000000″]Если вы не знакомы с псевдонимами таблиц, обратите внимание на другой наш учебник, который полностью объясняет эту концепцию.[/gn_box]

 

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

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.

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

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


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Рекомендуемое
Тот факт, что меры по социальному дистанцированию наконец отменяются, не…

Спасибо!

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