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:
Î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:
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:
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:
Acest lucru nu este exact ceea ce avem nevoie, să se alăture domeniul produselor și proceselor într-un singur Nully:
Rămâne doar de a alege prețul minim. interogare TEKT final ar arata astfel:
Î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.