Kad izmantot MySQL pašpievienošanos un piemēri

When Use Mysql Self Join



MySQL pašpievienošanās ir SQL pievienošanās veids, kas ļauj savienot tabulu ar sevi. Tas darbojas, izmantojot citus savienojuma veidus, piemēram, iekšējās vai kreisās savienošanas klauzulu, lai apvienotu rindas, pamatojoties uz norādītajiem nosacījumiem.

Šī apmācība parādīs, kā izmantot MySQL pašpievienošanos, lai apvienotu tabulu ar sevi un izveidotu pielāgotus datus.







Pamata lietošana

MySQL pašpievienošanās izmanto tabulas aizstājvārdus, lai nodrošinātu, ka vienā paziņojumā neatkārtojat vienu un to pašu tabulu vairāk nekā vienu reizi.



PIEZĪME: Ja neesat pazīstams ar tabulas aizstājvārdiem, apsveriet mūsu citu pamācību, kas pilnībā izskaidro šo jēdzienu.



Vispārējā sintakse, lai izmantotu pašpievienošanos, ir līdzīga tai, kas apvieno divas tabulas. Tomēr mēs izmantojam tabulas aizstājvārdus. Apsveriet tālāk parādīto vaicājumu:





SELECT alias1.cols,alias2.cols NO tbl1 aizstājvārds1,tbl2 pseidonīms2 KUR [stāvoklis]

Lietošanas gadījumu piemēri

Izmantosim piemērus, lai saprastu, kā veikt MySQL pašpievienošanos. Pieņemsim, ka jums ir datubāze ar šādu informāciju (skatiet visu vaicājumu zemāk)

DROP SHĒMA IF EKSISTĒ sevi;
RADĪT SHĒMA sevi;
LIETOT sevi;
RADĪT TABULA lietotājiem(
id INT PRIMĀRĀ ATSLĒGTA AUTO_INCREMENT ,
vārds VARCHAR (255),
e -pastu VARCHAR (255),
payment_id INT ,
abonementu INT
);
IEVIETOT INTO lietotājiem(vārds,e -pastu,payment_id,abonementu) VĒRTĪBAS ('Valērija G. Filips', '[aizsargāts ar e -pastu]', 10001, 1), ('Šons R. Stāsti', '[aizsargāts ar e -pastu]', 10005, 2), ('Bobijs S. Newsome', '[aizsargāts ar e -pastu]', 100010, 5);

Mēs sāksim ar iekšēju pievienošanos un beidzot ar kreiso pievienošanos.



Pašpievienošanās, izmantojot iekšējo pievienošanos

Tālāk esošais vaicājums veic iekšēju savienojumu iepriekš izveidotajā tabulā.

SELECT al1.* NO lietotāji al1 IEKŠĒJAIS PIEVIENOTIES lietotāji al2 IESLĒGTS al1.abonēšana=al2.abonēšana SAKĀRTOT PĒC id DESC ;

Rezultāts ir parādīts zemāk:

Pašpievienošanās, izmantojot kreiso pievienošanos

Tālāk sniegtajā vaicājuma paraugā ir paskaidrots, kā mēs varam izmantot pašpievienošanos ar kreiso savienojumu.

SELECT ( CONCAT (al1.uzvārds, '->',e -pasts)) AS detaļas,al1.payment_id NO lietotāji al1 KREISIS PIEVIENOTIES lietotāji al2 IESLĒGTS al1.id=al2.id;

Izejas rezultāts ir šāds:

Secinājums

Šajā rokasgrāmatā tika aprakstīts, kā jūs varat izmantot MySQL pašpievienošanos, lai pievienotos galdam ar sevi.

Paldies par lasīšanu.