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 já;VYTVOŘIT SCHÉMA já;
POUŽITÍ já;
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í.