Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako sa pripojíte k dvom tabuľkám v MySQL?

Pripojíte sa k dvom tabuľkám v MySQL pomocou klauzuly „CONT“ vo výpise „Select“. Existuje niekoľko typov spojov, z ktorých každá má trochu odlišné správanie:

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.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené