Alăturați-vă compus operatorului
ÎNSCRIEȚI declarație este utilizat pentru a efectua o operație de conectare a celor două seturi de date într-un set de rezultate. pot fi utilizate mai multe tipuri diferite de operațiuni de conectare. Ce linii vor fi incluse în setul de rezultate depinde de tipul de operațiune, evident, compus și condițiile speciale compuse. Condiții compus, adică, condiție de potrivire rânduri de tabele cu altele, este o expresie booleană.
Dacă este necesar, combinarea mai multor tabele de îmbinare operațiune care urmează să fie aplicat de mai multe ori în succesiune.
Sintaxa ÎNSCRIEȚI
Sintaxa conecta pentru a solicita tabele suplimentare folosind operatorul poate fi reprezentat ÎNSCRIEȚI după cum urmează:
Cele mai multe SGBD folosind operator JOIN în combinație cu cuvintele cheie STANGA, DREAPTA, operand FULL poate fi omise EXTERIOR. Operandul INTERIOARĂ în cele mai multe baze de date nu pot fi utilizate.
În cazul în care numele coloanelor pentru care există o potrivire tabele de conexiune, atunci puteți utiliza în loc de pe utilizarea. Pentru CROSS conditie join operatorul nu este specificat.
modele de test pentru a verifica JOIN
Pentru mai multe exemple va crea două modele de test simplu. utilizatorii Tabele de referință și mașinile lor. Primul tabel va stoca ID-ul utilizatorului și numele (nick). În al doilea tabel al listei de automobile (ID-ul, numele) și un identificator al proprietarilor / utilizatorilor respectivi. Trebuie remarcat faptul că utilizatorul poate avea mai multe vehicule sau să nu aibă deloc.
utilizatorii Tabelul
Tabelul auto
Conexiune internă, INTERIOARĂ-TE
INTERIOARĂ ÎNSCRIEȚI - este operatorul conexiunea internă a celor două tabele. El este simetrică, astfel încât ordinea tabelelor nu este importantă pentru operator.
INTERIOARĂ join este folosit pentru a prelua numai acele rânduri pentru care există o înregistrare de potrivire în tabelul principal și se conectează. formarea rezultat algoritm. fiecare rând al tabelului master este asociat cu fiecare rând al tabelului alăturat. După această condiție este testată compuși. În cazul în care condiția este adevărată, se adaugă setul de rezultate la linia corespunzătoare „conectat“.
Grafic, rezultatul muncii este după cum urmează:
Pentru a obține datele, care nu este adecvat pentru condiția, este necesar să se utilizeze un ALaTURAtI exterior - TE EXTERIOR.
ALaTURAtI exterior, OUTER JOIN
Atunci când operatorul care unesc două tabele OUTER JOIN din setul de rezultate va include o linie obligatorie sau un tabel, sau ambele tabele. cuvinte cheie exterior poate fi omisă. Înregistrare STÂNGA ÎNSCRIEȚI identice LEFT OUTER JOIN.
Există două tipuri de asociere externă. Este LEFT OUTER JOIN și RIGHT OUTER JOIN. Acești operatori funcționează în același fel. Diferența este că, atunci când se utilizează LEFT ÎNSCRIEȚI tabel este tabelul principal, a declarat, după clauza FROM. K rânduri din tabel tabele de date alăturat sunt adăugate în condițiile date. Pentru operatorul RIGHT OUTER JOIN totul este exact opusul.
conexiune externă OUTER JOIN operatorul nu este simetrică, astfel încât procedura pentru stabilirea conexiunii între tabele este importantă pentru operator.
Un exemplu de utilizare a LEFT OUTER JOIN operatorului
Grafic, rezultatul muncii este după cum urmează:
Operator LEFT OUTER JOIN cu filtrare
Adăugarea la exemplul de cod anterior, condiția „în cazul în care a.name este nulă“. Proba va fi doar o singură intrare „Ostap“, deoarece numai el nu a determinat mașina.
Grafic, rezultatul muncii este după cum urmează:
Operatorul de conexiuni încrucișate, CROSS-TE
CROSS ÎNSCRIEȚI - este operatorul de eco-conexiune (produs cartezian). Operatorul este simetrică, iar ordinea nu este importantă pentru tabelele operatorului.
set Rezultatiruyuschy este generat după cum urmează. fiecare linie este conectată la un singur tabel cu fiecare rând de-al doilea tabel, oferind astfel un rezultat al tuturor combinațiilor posibile de rânduri de două mese. De exemplu nostru, se pare 30 de rânduri din setul de rezultate.
Rezultatele sunt prezentate doar primele 12 rânduri.