Cerere 1C 8

Când vrem să vedem datele din mai multe tabele dintr-o dată, și anume, colecta mai multe tabele într-una există noțiunea de tabele de conectare și relațiile dintre ele. Compușii sunt de patru tipuri:






Fiecare tip ne vom uita la un exemplu abstract. Există 2 mese, primul magazin informații descriptive despre nomenclatura, a doua reziduurilor sale:

Cerere 1C 8

În scopul de a obține unul dintre aceste tabele, trebuie să se precizeze în mod explicit ce domenii vom comunica, în orice condiție și tip. Cine va fi mai bine înțeleasă.

stânga se alăture

Folosind stânga se alăture sistemului să spunem că, ca urmare vrem să vedem toate înregistrările din tabelul din stânga și înregistrările din dreapta îndeplinesc condițiile de comunicare. Să presupunem că conectarea la elementul de masă câmp cu aceeași condiție, atunci vom obține un tip de tabel:

Cerere 1C 8

Pentru scaun nu a existat nici o comparație a resturilor din tabel, astfel încât un câmp plin cu valori NULL care sunt sigur de a fi tratate funcția ESTNULL, vezi. Funcții Query Language 1C 8.

alăture stânga lucrări mult ca ciclul în ciclul - prima înregistrare este preluată din partea stângă a tabelului și trece peste toate înregistrările din dreapta pentru a satisface condițiile de comunicare. Apoi, a doua intrare este luat din partea stângă a tabelului, etc. În cazul în care dintr-o dată condițiile de comunicare îndeplinesc mai multe înregistrări din tabelul din dreapta, tabelul rezultat va fi adăugat câteva rânduri (numărul de conexiuni de succes) Cu referire vezi tabelul de rezultat nu are caracter informativ, datele nu reflectă esența reală, deci cel mai bine este de a lega aceste tabele pentru două câmpuri: Produs și culoare, numai de data aceasta va procesa Nully:







Cerere 1C 8

Conexiunea dreapta

conexiune dreapta este, în esență, nu este diferit de stânga. Dacă tabelul de swap, conexiunea dreapta rândul său, la stânga, în plus, prin utilizarea sistemului de constructor se transformă tot compusul în poziție verticală din stânga.

conexiune internă

Utilizarea sistemului de conexiuni interne, noi spunem că, ca urmare vrem să vedem doar acele înregistrări care îndeplinesc condiția ca o conexiune de la masa din dreapta și din stânga. Astfel, numărul de înregistrări care rezultă va fi mai mic sau egal cu numărul de înregistrări foarte „tabel scurt“, care participă la comun. Aplicăm o conexiune internă la domeniile de produse și culoarea tabelelor noastre:

compus plin

Full rezultat compus da în toate înregistrările din ambele tabele, înregistrări care îndeplinește condiția de comunicare - să fie conectate, acele înregistrări care nu îndeplinesc condiția de comunicare va rezulta într-o interogare, dar cu câmpuri NULLovyh parte. Full este ca stânga și dreapta într-un singur compus.

Probleme cu privire la acest subiect poate fi o mulțime de, să încercăm să rezolve una dintre ele. Compania noastra este un comerciant de 2 fabrici de mobila: „Dawn“ și „Dawn“. Intervalul cu valoarea fiecăruia dintre plantele sunt stocate în tabele diferite. Este necesar să se stabilească o singură listă de prețuri, și să-l produse la cel mai mic pret:

Aplicăm conexiunea completă, cu o prelevare de probe din toate domeniile, va comunica în funcție de produs:

Cerere 1C 8

Acest lucru nu este exact ceea ce avem nevoie, să se alăture domeniul produselor și proceselor într-un singur Nully:

Cerere 1C 8

Rămâne doar de a alege prețul minim. interogare TEKT final ar arata astfel:

Cerere 1C 8

În cazul în care prețul nu este specificat (NULL), atunci este necesar pentru a inițializa o parte sau o valoare sau operațiunea comparație pe sub / va fi aruncat afară din greșeală. inițializa preț cantitate nerealist de mare încât „pierdut“ în operațiunea de comparație, din cauza stării problemei selectăm cel mai mic ofertant.