Ta vadnica vam bo pokazala, kako z uporabo samopriključka MySQL združiti tabelo s seboj in ustvariti prilagojene podatke.
Osnovna uporaba
MySQL self-join uporablja vzdevke tabel, da zagotovi, da iste tabele ne ponovite več kot enkrat v enem stavku.
OPOMBA: Če niste seznanjeni z vzdevki tabel, si oglejte našo drugo vadnico, ki v celoti razlaga koncept.
Splošna skladnja za uporabo samo-združevanja je podobna tisti pri združevanju dveh tabel. Vendar pa uporabljamo vzdevke tabel. Razmislite o spodnji poizvedbi:
IZBERI alias1.cols,alias2.cols IZ tbl1 vzdevek1,tbl2 vzdevek2 KJE [stanje]
Primeri primerov uporabe
Uporabimo primere, da razumemo, kako izvesti samostojno pridružitev MySQL. Recimo, da imate bazo podatkov z naslednjimi informacijami (glejte celotno poizvedbo spodaj)
DROP SHEMA ČE OBSTAJA sebe;Ustvari SHEMA sebe;
UPORABA sebe;
Ustvari TABELA uporabniki(
id INT PRIMARNI KLJUČ AUTO_INCREMENT ,
ime VARCHAR (255),
E-naslov VARCHAR (255),
plačilni_id INT ,
naročnina INT
);
VSTAVI INTO uporabniki(ime,E-naslov,plačilni_id,naročnina) VREDNOTE ('Valerie G. Phillip', '[zaščiteno po e -pošti]', 10001, 1), ('Sean R. Stories', '[zaščiteno po e -pošti]', 10005, 2), ('Bobby S. Newsome', '[zaščiteno po e -pošti]', 100010, 5);
Začeli bomo z INNER pridružitvijo in končno levim pridružitvijo.
Self Join z uporabo Inner Join
Spodnja poizvedba izvede združevanje INNER v zgoraj ustvarjeni tabeli.
IZBERI al1.* IZ uporabniki al1 NOTRANJA PRIDRUŽITE SE uporabniki al2 VKLOPLJENO al1.naročnina=al2.naročnina NAROČI PO id DESC ;Izhod je prikazan spodaj:
Self Join z uporabo Left Join
Spodnja poizvedba razlaga, kako lahko uporabimo samodejno združevanje z levim.
IZBERI ( CONCAT (al1.prvo_ime, '->',al2.email)) AS podrobnosti,al1.payment_id IZ uporabniki al1 LEVO PRIDRUŽITE SE uporabniki al2 VKLOPLJENO al1.id=al2.id;Izhodni rezultat je spodaj:
Zaključek
Ta vodnik vas je vodil skozi to, kako lahko uporabite MySQL za samopriključitev, da se mizi pridružite sami.
Hvala za branje.