Kérdés nyelv 1c 8

Bejelentkezés diákként, hogy hozzáférjen az iskola

Query Language 1C 8.3 kezdőknek: Connection

A vegyületek lekérdezések

Connection - az egyik legfontosabb és a szükséges műveleteket végzi relációs adatbázis-kezelő rendszerek.

A vegyületeket arra használjuk, hogy az audio húr a táblázat sora egy másik táblázatban.

Oldjuk meg a következő probléma, hogy megvalósítsa a szükségességét kapcsolatokat.

Van egy alap van utalás az ügyfelek:

Kérdés nyelv 1c 8

Kérdés nyelv 1c 8

És az Association of jelzet:

Kérdés nyelv 1c 8

A mi feladatunk az, hogy a kedvenc egyesület ügyfeleinek, a szín alapján.

Így Natasha szeretett Egyesület fű, mint a kedvenc színe zöld. És Peter - a napot. Ön megtekinti a leckét próbaverziót, teljes órákat itt érhetők el.

Andrew nincsenek megfelelő egyesület, mint a kedvenc színe a piros és a vörös szín egyesületek székhelyű.

Mi lesz megoldani a problémát fokozatosan.

Először is, az igényeinek minden ügyfél és a kedvenc színek:

Most valahogy kombinálni kell az első és a második táblázat. Ehhez információkat kérhet két asztal. Ahhoz, hogy ezt a listát a két táblázatot a szakasztól, vesszővel elválasztva. Ön megtekinti a leckét próbaverziót, teljes órákat itt érhetők el. A részben jelzik SELECT mezők mindkét táblában:

Ha megpróbáljuk teljesíteni ezt a kérést, akkor egy hibaüzenet:

Kérdés nyelv 1c 8

Hiba oka az, hogy a Név mező van jelen azonnal mindkét táblában (ügyfelek és a társulások) és a rendszer egyszerűen nem tudja pontosan, hogy melyik mező a tábla értjük.

Ahhoz, hogy megszüntesse az ilyen kétértelmű mintán több asztalon való utalásként teljes nevét területeken. Teljes név mező tartalmazza a teljes elérési tábla (például Spravochnik.Klienty), és a mező nevét (pl neve).

Így a teljes neve a mező neve az Ügyfél táblázat Spravochnik.Klienty.Naimenovanie.

A teljes területén name A Szövetség az asztal Spravochnik.Assotsiatsii.Naimenovanie.

átkötés

Átírni az előző lekérdezés a teljes mezők nevét:

Kérdés nyelv 1c 8

Épp most tett egy átkötés két tábla között. Ügyeljen arra, hogy a mód, ahogyan az eredmény keletkezett:

Kérdés nyelv 1c 8

belső kapcsolat

Nyilvánvaló, hogy az eredmény a kölcsönös kapcsolatot a két asztal nem a megoldás a problémára. Nem kell az összes rekordot a keresztkapcsolatokat, de csak azok, amelyek területén LyubimyyTsvet és szín azonos értékű:

Kérdés nyelv 1c 8

Ahhoz, hogy ezeket a rekordokat hozzáadni egy korábbi kérelem rész, ahol:

Kérdés nyelv 1c 8

Ez az, amire szüksége van - úgy döntöttünk, a feladat!

Az utóbbi kérelmet, használt kereszt-kapcsolat a kiegészítő feltétel (a rész, ahol). Ön megtekinti a leckét próbaverziót, teljes órákat itt érhetők el. Egy ilyen vegyület az úgynevezett belső.

Van egy másik helyesírás azonos belső kapcsolat:

Hasonlítsuk össze ezt és az előző lekérdezés. Ők pontosan ugyanaz szempontjából a platform, csak eltérő szintaxis. És ez és a korábbi kérések tartalmaznak egy belső csatlakozzon a Vevő táblázatot a táblázat az Egyesület a mezők LyubimyyTsvet és színes volt.

bal csatlakozni

Figyeljünk arra, hogy hiányzott neki Andrew az eredmény a belső kapcsolatot. És mindez azért, mert a kedvenc színe a piros, a piros-egyesületek adatbázisunkban egyáltalán nem.

Kiderült, hogy Andrew az ő vörös csak nem találtam egy pár méret táblázatokban.

Átírni kérés, hogy eredményezni számának csökkenése a rekordok az első táblázatot, amelyek esetében nem volt egy pár a második táblázat (ebben az esetben, Andrew):

Kérdés nyelv 1c 8

Egy ilyen vegyület az úgynevezett bal kapcsolatot.

PerforMAN bal oldalon egy vegyületet összes rekordját a belső kapcsolat PLUS összes rekordot az első asztalnál. nem tartoznak bele a belső vegyület (amelyre nem volt pár).

Kérdés nyelv 1c 8

A megfelelő kapcsolat

De térjünk vissza a belső kapcsolatok:

Megjegyezzük, hogy az eredmény a belső kapcsolat nem tartalmaz társulása fehér hó, mivel nem volt egy ügyfél, aki a kedvenc színe lenne fehér.

Átírni kérés, hogy eredményezni számának csökkenése a rekordok a második táblázatot, amely nem található bármely két első asztal (ebben az esetben a fehér hó):

Kérdés nyelv 1c 8

Egy ilyen vegyület nevezzük megfelelő kapcsolat.

Az eredmény a jobb vegyületet jelenti: összes rekordját a belső kapcsolatot PLUS összes bejegyzés a második táblázatból. nem tartoznak bele a belső vegyület (amelyre nem volt pár).

Kérdés nyelv 1c 8

teljes vegyületet

Mi van, ha kell a lekérdezés eredményét szétesett inner join Andrew és hó ugyanabban az időben?

Ez szükségessé teszi a kombinált eredményei a bal és jobb kapcsolatokat. Ez a fajta vegyület már feltalált és az úgynevezett teljes vegyület:

Kérdés nyelv 1c 8

Az eredmény egy teljes vegyület áll: összes rekordját a belső kapcsolatot PLUS összes rekordot az első táblázatban, nem tartoznak bele a belső vegyület (amelyre nem volt pár) PLUS összes bejegyzés a második táblázatból, nem tartoznak bele a belső vegyület (amelyre nem volt pár) .

Kérdés nyelv 1c 8

fedőnevek

Ön egyetért azzal, hogy valamennyi kérelmet, hogy írtunk arról, ebben a leckében elég terjedelmes. Ez annak a ténynek köszönhető, hogy meg kell adnia teljes nevét, a mezők félreértések elkerülése végett.

Hogy csökkentse a teljes helyesírás a neve (például Spravochnik.Klienty) megengedett (például a területek is) használ álneveket.

Írjuk át az utolsó kérése, hogy a megalakult a teljes mező helyett neveket Spravochnik.Klienty jönne egy álnév helyett K. Spravochnik.Assotsiatsii - alias A:

És a lekérdezés eredmény még tisztább hozzá álnevek mezőket, hogy már egyike a tanulságokat a múlt:

Kezelés NULL

Nézd meg alaposan az eredmények az utolsó lekérdezés (valamint számos korábban ebben a leckében).

Milyen értékeket a mezők és EoTsvet Egyesület az első helyet? Mit tudsz mondani a mezőket Ügyfél és EgoTsvet az utolsó sorban?

Ezek NULL, a mely mint tudjuk jelenti hiányában értékek:

És mivel NULL hiányát jelenti értékek minden olyan kísérletet, hogy végre neki semmilyen műveletet (Összehasonlításképpen kívül.) Hatására meghatározatlan viselkedés adatbázis, kiszámíthatatlan hibákat.

Ezért a kötelező kezelés mérlegelése NULL értékeket, ha merülhetnek fel.

Kezelés alatt azt értjük, hogy azt kell mondanunk, hogy kérésünkre, hogy ha az egyik olyan terület lesz egyenlő NULL. ezen a területen kell helyettesíteni valamilyen más értéket.

Ebben az esetben a mezők Ügyfél és a társulási esetén NULL, akkor helyettesítheti az üres string „”.

Annak megállapításához, hogy a mező kapott NULL fogja használni a már ismerős számunkra a korábbi leckék ESTNULL funkció:

A felszínen (a kérelmek konzol), az eredmény nem változott. Továbbra is látni az üres mezőket. De ez csak azért, mert a húr képviseletek NULL, és az üres területek összes típus azonos, és egyenlő az üres karakterlánc.

Tény, hogy ezek az üres mezők nem NULL (nincs érték), most kapott érték (üres), amellyel már lehet működtetni (műveletek elvégzéséhez).

Megjegyzés az üres érték és a hiányzó érték - két nagy különbség.

A vegyület több mint két asztal

Lehet sorba kapcsolt annyi táblákat.

Tegyük fel, hogy meg kell oldani a következő probléma. Ön megtekinti a leckét próbaverziót, teljes órákat itt érhetők el. Visszavonja az összes lehetséges ügyfelek és szeretteik szervezetek és a kedvenc ételek alapján a kedvenc színe.

Erre a célra sorosan a színét a megrendelő táblázat a dimenzió táblák. majd (eredmény megkapjuk) Élelmiszer táblázat: