Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. `Vnútorný spojenie (najbežnejšie):
Vráti riadky iba vtedy, keď v oboch tabuľkách je zhoda na základe podmienky spojenia. Ak v jednej tabuľke nie je zhoda, riadok je vylúčený z výsledku.
`` sql
Vyberte Column_names
Z tabuľky1
Vnútorná tabuľka 2 v tabuľke1.column_name =table2.Column_name;
`` `
* `Table1` a` Table2`:Tabuľky, ktoré sa chcete pripojiť.
* `Column_name`:Stĺpce používané na zladenie riadkov medzi tabuľkami. Tieto stĺpce musia mať kompatibilné typy údajov.
Príklad:
Povedzme, že máte dva tabuľky:
* `zákazníci: `CustomerId`,` name ', `City`
* `Orders`: `OrderID`,` customerID`, `Orderdate`,` totaLamount`
Získanie názvu zákazníka a podrobnosti o objednávke pre všetky objednávky:
`` sql
Vyberte zákazky.Name, Orders.orderID, Orders.orderDate, Orders.Totalamount
Od zákazníkov
Vnútorné príkazy na zákazníkov.CustomerID =Orders.CustomerID;
`` `
Tým sa vráti iba zákazníkov, ktorí zadali objednávky a objednávky, ktoré patria existujúcim zákazníkom.
2. `Ľavica JOON '(alebo` ľavá vonkajšia súvislosť "):
Vráti všetky riadky z ľavej tabuľky (`TABUR1`), aj keď v pravej tabuľke nie je zhoda (` TABLE2`). Ak v správnej tabuľke nie je zhoda, stĺpce z pravej tabuľky budú mať hodnoty `null`.
`` sql
Vyberte Column_names
Z tabuľky1
Tabuľka 2 vľavo v tabuľke1.column_name =table2.Column_name;
`` `
Príklad: Získať všetkých zákazníkov a ich objednávky (vrátane zákazníkov bez objednávok):
`` sql
Vyberte zákazky.Name, Orders.orderID, Orders.orderDate, Orders.Totalamount
Od zákazníkov
Pripojte sa k objednávkam na zákazníkov.CustomerID =Orders.CustomerID;
`` `
3. `Pravá spojenie (alebo` pravý vonkajší spojenie "):
Vráti všetky riadky z pravej tabuľky (`Tabuľka2`), aj keď v ľavej tabuľke nie je zhoda (` TABLE1`). Ak v ľavej tabuľke nie je zhoda, stĺpce z ľavej tabuľky budú mať hodnoty `null`.
`` sql
Vyberte Column_names
Z tabuľky1
Pravá pripojenie Tabuľka 2 v tabuľke1.Column_name =table2.Column_name;
`` `
Príklad: (Menej bežné, ale užitočné v konkrétnych scenároch) Toto je funkčne ekvivalentné „ľavému spojeniu“ s vymenenými tabuľkami.
4. `Plné vonkajšie spojenie:
Vráti všetky riadky z oboch tabuliek. Ak dôjde k zhode, vráti sa zodpovedajúci riadok. Ak v jednej tabuľke nie je zhoda, stĺpce z druhej tabuľky budú mať hodnoty `null`. mysql priamo nepodporuje „Full Outer Connect“ . Musíte to simulovať pomocou `Union` ľavého pripojenia a` pravého spojenia.
`` sql
Vyberte Column_names
Z tabuľky1
TABUĽKA BOOK2 v tabuľke 1
Zväzok
Vyberte Column_names
Z tabuľky1
Pravá pripojenie Tabuľka 2 v tabuľke1.Column_name =table2.Column_name;
`` `
Výber správneho spojenia:
Výber typu spojenia závisí od toho, aké údaje potrebujete. „Inner Contern“ je najčastejšou voľbou, ale „Správne spojenie“ a „Správne spojenie“ sú rozhodujúce, keď potrebujete zachovať všetky riadky z jednej z tabuliek. Simulujte „Full Outer Assunt“, keď potrebujete všetky riadky z oboch tabuliek. Nezabudnite používať aliasy (`Table1`,` Table2`) na prehľadnosť a vyhnúť sa nejednoznačnosti, keď sú názvy stĺpcov rovnaké v oboch tabuľkách.