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

When Use Mysql Self Join



MySQL Self-Join е вид SQL Join, който ви позволява да присъедините таблица към себе си. Той работи, като използва други типове съединения, като например вътрешно или ляво съединение, за да комбинира редове въз основа на посочените условия.

Този урок ще ви покаже как да използвате MySQL самосъединяване, за да обедините таблица със себе си и да създадете персонализирани данни.







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

MySQL self-join използва псевдоними на таблици, за да гарантира, че не повтаряте една и съща таблица повече от веднъж в един израз.



ЗАБЕЛЕЖКА: Ако не сте запознати с псевдоними на таблици, помислете за другия ни урок, който обяснява изцяло концепцията.



Общият синтаксис за използване на самосъединяване е подобен на този при комбиниране на две таблици. Ние обаче използваме псевдоними на таблици. Помислете за заявката, показана по -долу:





SELECT alias1.cols,alias2.cols ОТ tbl1 псевдоним1,tbl2 псевдоним2 КЪДЕТО [състояние]

Примерни случаи на използване

Нека използваме примери, за да разберем как да извършим MySQL самостоятелно присъединяване. Да предположим, че имате база данни със следната информация (вижте пълната заявка по -долу)

ИЗПУСКАЙТЕ СХЕМА АКО СЪЩЕСТВУВА себе си;
СЪЗДАВАЙТЕ СХЕМА себе си;
ИЗПОЛЗВАЙТЕ себе си;
СЪЗДАВАЙТЕ ТАБЛИЦА потребители(
документ за самоличност INT ОСНОВЕН КЛЮЧ АВТОМАТИЧНО УВЕЛИЧАВАНЕ ,
първо име ВАРЧАР (255),
електронна поща ВАРЧАР (255),
плащане_id INT ,
абонамент INT
);
ИНСЕРТ ВЪВ потребители(първо име,електронна поща,плащане_id,абонамент) СТОЙНОСТИ („Валери Г. Филип“, '[защитен имейл]', 10001, 1), („Истории на Шон Р.“, '[защитен имейл]', 10005, 2), („Боби С. Нюсом“, '[защитен имейл]', 100010, 5);

Ще започнем с ВЪТРЕШНО присъединяване и накрая с ляво присъединяване.



Самоприсъединяване с помощта на Вътрешно присъединяване

Заявката по -долу изпълнява INNER присъединяване към таблицата, създадена по -горе.

SELECT al1.* ОТ потребители al1 АТРЕШНА ПРИСЪЕДИНЯВАНЕ потребители al2 НА al1.абонамент=al2.абонамент ПОДРЕДЕНИ ПО документ за самоличност DESC ;

Изходът е показан по -долу:

Самоприсъединяване с помощта на ляво присъединяване

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

SELECT ( КОНКАТ (al1.first_name, '->',al2.email)) КАТО подробности,al1.payment_id ОТ потребители al1 НАЛЯВО ПРИСЪЕДИНЯВАНЕ потребители al2 НА al1.id=al2.id;

Резултатът от изхода е по -долу:

Заключение

Това ръководство ви преведе как можете да използвате MySQL self join, за да се присъедините към маса със себе си.

Благодаря ви за четенето.