Egyszerű equi-join - stadopedia
Az ilyen beszállítókkal kapcsolatos információk összes kombinációjának kiadása és az ugyanabban a városban található adatok (más szóval "helymegosztás" egy csúnya, de kényelmes kifejezés):
WHERE S.GOROD = R.GROD;
Vegye figyelembe, hogy itt a WHERE klauzula mezőihez tartozó hivatkozásokat a táblázatok nevével kell megadni. Ennek eredményeként a következő 1. táblázatot kapjuk. (A táblázat kétértelműségének elkerülése érdekében a CITY két oszlopát kifejezetten S.GOROD és R.GOROD formájában mutatjuk be.)
S1 S1 S1 S2 S2 S3 S3 S4 S4 S4
Blake Clark és Clark Clark
London London London Párizs Paris Párizs Párizs London London London
mert kielégítik a predikátumot a WHERE (S.GOROD = R.GOROD) kifejezésben. Ez igaz minden olyan sor párra is, amelyek a megfelelő CITY értékeket tartalmazzák. Megjegyezzük, hogy a szolgáltató a S5, helyet kapott Athén, hiányzik az eredmény tábla, mert nincsenek olyan alkatrészek, amelyek tárolják a városban. Hasonlóképpen, az eredmény nem tartalmaz ritkaföldfém tárolt elemek Róma, tekintve, hogy egyetlen szolgáltató található Róma.
E lekérdezés eredményét az S és P táblák csatolásának nevezzük a CITY értékek megfeleltetésével. A "kapcsolat" kifejezést is használják az ilyen eredményt létrehozó művelet kijelölésére. Az S.CITY = ROW állapotot csatlakozási feltételnek vagy kapcsolati predikátumnak nevezik. A fenti példával kapcsolatban számos pontot kell megjegyezni. Néhány közülük fontos, mások nem olyan jelentősek.
- A kapcsolat predikátumban mindkét mezőnek numerikusnak vagy karakterláncnak kell lennie. Nem szükséges, hogy adattípusaik azonosak legyenek. Azonban teljesítményi okoknál fogva általában ez nem lenne rossz.
- Nem feltétlenül szükséges, hogy a kapcsolat predikátumban lévő mezők ugyanazokkal a nevekkel rendelkeznek, bár nagyon gyakran ez lesz a helyzet.
- Nincs szükség arra, hogy az összehasonlító operátor a kapcsolati predikátumban egyenlőség legyen, bár ez nagyon gyakori. További ilyen példákat adunk (4.3.2. Példa és a 4.3.6. Példa utolsó része). Egy egyenlőségi szolgáltató esetében a kapcsolatot néha equi-join-nak nevezik.
- A SELECT kapcsolat WHERE klauzulája magában foglalhatja a kapcsolat predikátumon kívül egyéb feltételeket is. Ezt a lehetőséget a 4.3.3. Példában mutatjuk be.
- Természetesen a SELECT csak a megadott kapcsolati mezők közül választhat, nem mindegyiket. Ezt a lehetőséget a 4.3.4-4.3.6. Példákban mutatjuk be.
tovább egyszerűsíthető:
Másrészt kiterjesztett formában is megírható:
VÁLASZTJA A SZÁLLÍTÓ SZÁMA, UTÓBBI NÉV, ÁLLAM, S.gorod
NUMBER_DETAILS, NAME, COLOR, WEIGHT, R. CITY
Ebben a készítményben az S.GOROD és R.GOROD a SELECT utasításban meg kell határozni a minősített neveket, ahogy az a példa, mivel meghatározhatatlan Név Város kétértelmű lenne. Ha finomított mezõnevekkel kapcsolatos kérdéseket fel kell frissítenünk, tekintse át a 4.2 fejezetet.
- Definíció szerint egy equi-join-nak olyan eredménnyel kell rendelkeznie, amely két azonos oszlopot tartalmaz. Ha kizár egy ilyen oszlopot, akkor a maradékot természetes csatlakozásnak nevezik. Annak érdekében, hogy az S és P táblázatok természetes összekapcsolódjanak az SQL városokra, meg kell adni:
SELECT SUPPLIER__NUMBER, LAST NAME, STATE, STATE, S.CITY,
NUMBER_DETAILS, NAME, SZÍN, SÚLY
WHERE S.GOROD = R.GROD;
A természetes vegyület valószínűleg egy vegyület egyik leghasznosabb formája - olyan mértékben, hogy gyakran használjuk a nem specifikált "vegyület" kifejezést kifejezetten erre a esetre.
- A kapcsolatokat is létrehozhatod, három, négy. vagy bármely számú táblázatot. Az alábbi 4.3.5 példában a három táblázat kapcsolatát mutatjuk be.