Cererile de conectare 1Σ8

Conexiunea este una dintre cele mai frecvente operațiuni efectuate pe baze de date. Conexiunile sunt folosite pentru a potrivi rândurile dintr-o tabelă în alta. Corespondența se face prin valoarea unuia dintre câmpuri, pe care îl vom numi cheia.







Practic, conexiunile sunt folosite pentru a obține informații dintr-o sursă diferită într-un singur eșantion. Cu alte cuvinte, sursele sunt legate în cazul în care semnificația lor fizică diferă.

Există patru tipuri de îmbinări de masă care se ocupă de mecanismul de solicitare 1C: Enterprise: intern, stânga externă. Extreme exterioare, Full Outward (sau ... Mai ușor, Inner, Left, Right, Full).

Conexiune internă

[INTERNAL] CONNECTION înseamnă că din ambele tabele sursă de date sursă trebuie incluse în rezultatul interogării numai acele combinații de înregistrări care se potrivesc cu condiția specificată. Restul înregistrărilor nu sunt incluse în rezultat. Cuvintele cheie INTERNAL nu pot fi specificate deloc, crește claritatea și lizibilitatea textului interogării.

Cel mai simplu tip de conexiune este intern. În acest caz, interogarea identifică pur și simplu perechi de linii cu aceeași valoare cheie (în acest exemplu, ca în toate cele ulterioare, câmpul "Contrapartidă" este folosit ca câmp cheie).

Conexiune stânga (dreapta)

CONFIGURARE LIBERĂ [EXTERNĂ] înseamnă că combinația de înregistrări din ambele tabele sursă care corespund condiției specificate trebuie să fie inclusă în rezultatul interogării. Dar, spre deosebire de conexiunea internă, rezultatul interogării ar trebui să includă și înregistrări din prima sursă (spre stânga cuvântului CONNECTION), pentru care nu au fost găsite condițiile din cea de-a doua sursă. Astfel, toate înregistrările de la prima sursă vor fi incluse în rezultatul interogării; acestea vor fi conectate la înregistrări din a doua sursă atunci când condiția specificată este îndeplinită. Rândurile de rezultate ale interogării, pentru care nu sunt găsite înregistrările din a doua sursă, vor conține NULL în câmpurile formate din înregistrările din această sursă.

DREAPTA [EXTERNĂ] CONEXIUNE înseamnă că rezultatul interogării trebuie să includă combinații de înregistrări din ambele tabele sursă care corespund condiției specificate. În plus, rezultatul de interogare este de asemenea necesar să se includă, de asemenea, înregistrarea celei de a doua (dreapta a spus cuvântul COMPUS) sursă, care a fost găsit potrivit pentru starea primului istochnika.Takim, într-un rezultat de interogare va include toate înregistrările dintr-o a doua sursă; acestea vor fi conectate la înregistrări de la prima sursă atunci când condiția specificată este îndeplinită. Rândurile de rezultate ale interogării, pentru care nu sunt găsite înregistrările din prima sursă, vor conține NULL în câmpurile formate din înregistrările din această sursă.







Situația este complicată atunci când sursele nu coincid complet. "Du-te este, într-o masă există o intrare cu o valoare cheie, iar în alta nu există o astfel de înregistrare. Diagrama arată situația în care înregistrarea se află în tabelul de contrapartidă, dar nu în tabelul de vânzări. Aceasta înseamnă că o contraparte nu este nimic nu ne-am cumpăra, cu toate că în directorul de contractanți l-am (de exemplu, a cerut oamenilor să scrie să-l în contul de plată și de cumpărare a schimbat mintea lui, este situație de viață). În acest caz, Null va apărea în eșantion în locul înregistrării care lipsește.

Conexiune completă

DREAPTA [EXTERNĂ] CONEXIUNE înseamnă că rezultatul interogării trebuie să includă combinații de înregistrări din ambele tabele sursă care corespund condiției specificate. În plus, rezultatul de interogare este de asemenea necesar să se includă, de asemenea, înregistrarea celei de a doua (dreapta a spus cuvântul COMPUS) sursă, care a fost găsit potrivit pentru starea primului istochnika.Takim, într-un rezultat de interogare va include toate înregistrările dintr-o a doua sursă; acestea vor fi conectate la înregistrări de la prima sursă atunci când condiția specificată este îndeplinită. Rândurile de rezultate ale interogării, pentru care nu sunt găsite înregistrările din prima sursă, vor conține NULL în câmpurile formate din înregistrările din această sursă.

Conexiune externă completă, aceasta, așa cum este deja clar din titlu, dezvoltarea în continuare a conexiunilor stânga (sau dreapta). Când organizați o conexiune completă, este important să țineți cont de această circumstanță: atunci când un anumit tip este asociat, toate înregistrările din ambele tabele intră în interogare. Cu alte cuvinte, trebuie să obținem valoarea zero-cheie din tabelele din stânga și din dreapta. Rețineți: asigurați-vă de ambele mese! O soluție este de a crea un câmp suplimentar pentru acest lucru, în care să faceți un control al Null. Dacă cheia într-unul din tabele este Null, atunci trebuie să luați valoarea din alt tabel.

Deoarece conexiunea completă este oarecum mai complicată decât celelalte tipuri de conexiuni, să ne schimbăm puțin exemplul. Acum trebuie să obținem nu doar o listă extinsă de vânzări, ci o listă a tuturor contrapartidelor existente.

Tabel după conectare completă, cu toate câmpurile tabelelor sursă:

Forma finală a tabelului, în care contrapărțile sunt consolidate într-un singur domeniu:

Mai jos este versiunea cererii corespunzătoare. Rețineți că primim date despre contrapartide nu numai din documente, ci din subcheiere. În ele, efectuăm gruparea de către contrapartide astfel încât fiecare contrapartidă să fie reprezentată în probă o singură dată. Și, desigur, nu uitați de Null:

Blog despre 1s și Bitrix pentru utilizatori și programatori







Articole similare

Trimiteți-le prietenilor: