Šī 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.