Kdy použít MySQL Self Join a příklady

When Use Mysql Self Join



MySQL Self-Join je typ spojení SQL, které vám umožňuje připojit tabulku k sobě. Funguje to tak, že ke kombinování řádků na základě zadaných podmínek se používají jiné typy spojení, jako je vnitřní nebo levé spojovací klauzule.

Tento tutoriál vám ukáže, jak pomocí MySQL self-join sloučit tabulku se sebou a vytvořit přizpůsobená data.







Základní použití

MySQL self-join používá aliasy tabulek, aby zajistila, že v jednom příkazu neopakujete stejnou tabulku více než jednou.



POZNÁMKA: Pokud nejste obeznámeni s aliasy tabulek, zvažte náš další tutoriál, který tento koncept plně vysvětluje.



Obecná syntaxe pro použití vlastního spojení je podobná jako při kombinaci dvou tabulek. Používáme však aliasy tabulek. Zvažte níže uvedený dotaz:





VYBRAT alias1.koly,alias2.koly Z tbl1 alias1,tbl2 alias2 KDE [stav]

Příklad použití případů

Pojďme pomocí příkladů pochopit, jak provádět vlastní spojení MySQL. Předpokládejme, že máte databázi s následujícími informacemi (viz celý dotaz níže)

UPUSTIT SCHÉMA LI EXISTUJE;
VYTVOŘIT SCHÉMA;
POUŽITÍ;
VYTVOŘIT STŮL uživatelé(
id INT PRIMÁRNÍ KLÍČ AUTO_INCREMENT ,
jméno VARCHAR (255),
e-mailem VARCHAR (255),
payment_id INT ,
předplatné INT
);
VLOŽIT DO uživatelé(jméno,e-mailem,payment_id,předplatné) HODNOTY ('Valerie G. Phillip', '[email protected]', 10001, 1), ('Sean R. Stories', '[email protected]', 10005, 2), ('Bobby S. Newsome', '[email protected]', 100010, 5);

Začneme VNITŘNÍM spojením a nakonec levým spojením.



Vlastní připojení pomocí vnitřního spojení

Níže uvedený dotaz provede VNITŘNÍ spojení u výše vytvořené tabulky.

VYBRAT al1.* Z uživatelé al1 VNITŘNÍ PŘIPOJIT uživatelé al2 NA al1.předplatné=al2. předplatné SEŘADIT PODLE id DESC ;

Výstup je uveden níže:

Vlastní připojení pomocí připojení vlevo

Níže uvedený příklad dotazu vysvětluje, jak můžeme použít vlastní spojení s levým spojením.

VYBRAT ( CONCAT (al1.první_název, '->',al2.email)) TAK JAKO podrobnosti,al1.platba_id Z uživatelé al1 VLEVO, ODJET PŘIPOJIT uživatelé al2 NA al1.id=al2.id;

Výsledek výstupu je níže:

Závěr

Tato příručka vás provedla tím, jak můžete pomocí MySQL self join spojit tabulku se sebou samým.

Děkuji za přečtení.