Този урок ще ви покаже как да използвате 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, за да се присъедините към маса със себе си.
Благодаря ви за четенето.