MySQL JOIN: descriere, exemplu de utilizare a comenzii și recomandări

Dezvoltarea de baze de date cu resurse de Internetpractic nu diferă de bazele de date standard dezvoltate în sistemul MS SQL SERVER. De regulă, SQL MY este folosit pentru astfel de resurse, deși poate fi aplicat dezvoltării de produse software standard pentru uz local. Dar acest articol nu este despre asta.

mysql se alăture

Adesea, atunci când lucrează cu baze de date în fiecare dintre elelimbile au sarcina de a face o selecție de date pentru afișare într-o varietate de rapoarte, grafice și așa mai departe. De regulă, atunci când se implementează astfel de sarcini, este necesar să se utilizeze nu unul, ci mai multe tabele, combinându-le într-o singură interogare, complicând în mod semnificativ proiectarea. În același timp, este necesar să se țină cont de modul în care ar trebui afișate datele, de modul în care tabelele vor fi "trase" și ce rezultat va fi cel mai acceptabil pentru programator. Pentru a rezolva astfel de probleme, se utilizează unul dintre construcțiile standard ale limbajului MySQL, Join.

Conceptul cuvântului Join

Limbi de dezvoltare a bazelor de date, indiferent de ceeste vorba despre limbă, sunt luate ca bază standarde de cuvinte din dicționarele în limba engleză (de aceea, cu condiția să știi limba engleză, va fi mult mai ușor pentru tine să lucrezi cu mese). Pentru a implementa conexiunea tabelelor, același cuvânt este luat în eșantion - Alăturați-vă. Într-un limbaj de programare a bazei de date, se utilizează My SQL. Traducerea acestui cuvânt oficial este exact aceeași ca și în limba în sine - "asociere".

Interpretarea construcției MySQL - Alăturați-vă șioricare dintre acestea va fi exact aceeași. Dacă descifrați scopul structurii, și anume schema lucrării sale, atunci obținem următoarea valoare: structura va permite colectarea câmpurilor necesare din diferite tabele sau subcotări într-un singur eșantion.

Tipuri de structuri de combinat

mysql se alăture

Dacă programatorul trebuie să colecteze un eșantion demai multe mese și el știe care sunt câmpurile cheie din ele și care sunt datele necesare pentru raport, atunci puteți utiliza una din principalele structuri ale uniunii pentru a obține rezultatul dorit. Există patru construcții principale (pentru combinarea meselor):

  1. Intrarea internă.
  2. Intrarea în cruce.
  3. Ajunge la stânga.
  4. Intrați drept.

În funcție de sarcină, fiecare dintre structurile standard va da rezultate diferite, ceea ce va permite să primim rapoarte privind diferiți parametri într-un timp scurt.

Crearea și popularea tabelelor pentru utilizare ulterioară.

Înainte de a începe, de exemplu, ia în consideraremecanisme de lucru cu construcții de federații de date, merită pregătite câteva mese cu care vom continua să lucrăm. Acest lucru va contribui la afișarea vizuală a tuturor principiilor operatorilor, în plus, astfel încât începătorii vor înțelege mai ușor toate elementele de bază ale tabelelor de programare.

Prima masă va descrie unele elemente cu care o persoană se întâlnește în mod constant pe tot parcursul vieții.

mysql se alăture

În al doilea tabel, descriem câteva proprietăți ale obiectelor din primul tabel, astfel încât să putem lucra cu ele în viitor.

stânga se alăture mysql

În general, două mese vor fi suficiente pentru a arăta munca lor folosind un exemplu. Acum puteți începe examinarea practică a desenelor noastre.

Utilizarea Inner Join

Când utilizați construirea MySQL - Alăturați-vă IneerEste demn de luat în considerare unele dintre caracteristicile sale. Acest design vă permite să selectați din ambele tabele numai acele înregistrări care se află atât în ​​primul tabel cât și în cel de-al doilea. Cum funcționează? În primul tabel avem o cheie principală - ID, care indică numărul ordinal al înregistrărilor din tabel.

Când creați al doilea tabel, aceeași cheiefolosit ca număr de ordine, un exemplu poate fi văzut în figuri. Atunci când selectați date, operatorul Select va determina ca rezultat numai acele înregistrări, numerele de ordine ale cărora coincid, ceea ce înseamnă că acestea sunt în primul și al doilea tabel.

Când folosiți designul trebuie să înțelegețice fel de date trebuie să obțineți. Cea mai obișnuită greșeală, mai ales pentru un programator de baze de date novice, este folosirea irațională și incorectă a constructului Inner Join. De exemplu, MySQL Inner Join, putem lua în considerare un script care va returna informații despre obiecte și proprietățile lor din tabelele descrise și completate anterior. Dar pot exista câteva modalități de utilizare a designului. În acest sens, My SQL este un limbaj foarte flexibil. Deci, puteți lua în considerare exemple de utilizare a MySQL Inner Join.

Combinarea tabelelor fără specificarea parametrilor. În acest caz, obținem rezultatul unui astfel de plan:

Intrare internă în MySQL

Dacă indicăm prin cuvântul de serviciu Utilizarea, astaeste necesar să se țină seama de cheile principale ale înregistrărilor din tabele, atunci rezultatul eșantionului se va schimba dramatic. În acest caz, primim o mostră care returnează numai acele rânduri care au aceleași chei principale.

mysql se alăture exemplelor

Este posibil și un al treilea caz de utilizare.construcții, atunci când în interogare prin cuvântul "pe" sunt indicate câmpurile, conform cărora tabelele trebuie să fie unite. În acest caz, eșantionul va returna următoarele date:

mysql join join select

Caracteristici ale utilizării asocierii Left left

Dacă luăm în considerare o altă modalitate de a se alătura tabelelor folosind construcția MySQL - Join, puteți observa diferența dintre datele care sunt extrase. Un astfel de mecanism este construcția stângii.

Folosind construcția din stânga alăturați MySQL are câteva caracteristici și, la fel ca Inner, necesită o înțelegere clară a rezultatului care trebuie obținut.

În acest caz, toate intrările vor fi selectate mai întâi.de la prima masă și mai târziu vor fi adunate la înregistrările din tabelul de proprietăți al doilea. În același timp, dacă primul tabel are o înregistrare, de exemplu "scaun", iar al doilea tabel nu are proprietăți pentru acesta, atunci operatorul din stânga va imprima dincolo de această înregistrare la nul, ceea ce îi spune programatorului că nu există semne pe acest tip de obiect. .

Utilizarea acestui design vă va permite să determinați câmpurile sau, de exemplu, bunurile din magazin nu sunt evaluate, perioada de garanție și așa mai departe.

Caz de utilizare stânga

Pentru examinare în practica operatoruluiStânga Join Construcții MySQL utilizează tabelele descrise anterior. Să presupunem că trebuie să selectați întreaga listă de produse aflate în magazin și să verificați care dintre acestea nu sunt semne sau proprietăți marcate. În acest caz, eșantionul va afișa toate produsele, iar pentru cei care nu au o proprietate, vor fi introduse valori goale.

actualizare mysql join

Utilizarea Unde se află într-o Construcție Alătuită

Ca parametru, o asociere poate include nu numai specificarea câmpurilor prin care ar trebui să fie conectate tabelele, dar poate include și operatorul Clauză Where.

De exemplu, ia în considerare scenariul care ar trebui să fieîntoarce-ne la noi doar acele înregistrări care nu sunt marcate. În acest caz, trebuie să adăugați o declarație de condiție în construcția Join și să specificați exact ce ar trebui returnat ca rezultat.

Când este folosit în MySQL Join - În cazul în care, trebuie să înțelegeți în mod clar că doar acele înregistrări vor fi arătate că se referă la condiția specificată și eșantionul va arăta astfel:

mysql se alăture în cazul în care

Astfel de interogări vă permit să faceți mostre prindate specifice care se referă la starea aleasă de programator. Puteți specifica mai multe dintre aceste condiții, în timp ce optimizați maxim parametrii de selecție a datelor din tabelele combinate.

Folosind Alăturați-vă pentru a modifica datele din tabele

Construcția lui Join este în esență universală. Acesta permite nu numai să facă o varietate de probe, ci și să includă în interogări de la una la mai multe tabele, pentru a introduce condiții suplimentare în eșantion. Designul poate fi folosit și pentru alte operații de date. Deci, Join poate fi folosit pentru a schimba datele dintr-un tabel. Mai degrabă, pentru a clarifica condițiile din tabel sau în acele cazuri, dacă trebuie să actualizați datele în mai multe tabele în aceleași condiții.

De exemplu, ia în considerare această problemă. Există trei tabele în care există date. Este necesar să modificați datele din ambele tabele utilizând o singură interogare. Doar pentru a rezolva astfel de sarcini, puteți folosi comanda Join în comanda Update. Tipul de construcție Join itself depinde, la fel ca și în cazul eșantionării datelor, de rezultatul dorit de programator.

Luați în considerare cel mai simplu exemplu. Este necesar să actualizați datele cu o singură cerere în aceleași condiții. Astfel de interogări sunt construite pentru a optimiza activitatea cu baza de date. De ce scrieți diferite interogări pentru fiecare tabel dacă puteți efectua toate manipulările cu datele într-o singură interogare? Un exemplu de actualizare MySQL Alăturați-vă în cazul nostru ar fi:

mysql stânga se alăture exemple

Construirea de interogări complexe

Destul de des atunci când lucrezi cu o bază de dateeste necesar să se creeze interogări nu numai cu unirea mai multor mese, ci și cu utilizarea subdotărilor. Astfel de sarcini sunt destul de greu pentru un programator de baze de date novice să înțeleagă. Dificultatea este că trebuie să gândiți prin fiecare pas, să determinați ce date din care tabelă sau interogare trebuie să obțineți și cum veți avea nevoie să lucrați cu ei în viitor.

Pentru o înțelegere mai specifică, puteți lua în considerare(în MySQL Join) exemple de interogări complexe. Dacă sunteți începător și începeți să lucrați cu baze de date, atunci această formare va beneficia numai. Opțiunea ideală ar fi exemplele MySQL left join.

stânga se alăture mysql

Această solicitare ne va trimite 58 de înregistrări de contractevânzările pentru care balanța de numerar este completă sau există la data selectată. În acest caz, aceasta este data curentă. De asemenea, la eșantion a fost adăugată o condiție conform căreia titlul contractului ar trebui să conțină simbolurile "123". Informațiile (datele) afișate pe ecran vor fi sortate - ordonate după numărul contractelor.

Următorul exemplu va afișa date despre toate plățile în care va fi indicat numărul contractului.

mysql se alăture

Utilizarea subdotării

Așa cum am menționat mai devreme, atunci când lucrăm cu bazele de dateDatele pot fi combinate nu numai cu tabelele, ci și cu un tabel cu o interogare. Acest design este utilizat în principal pentru a accelera interogarea și optimizarea acesteia.

De exemplu, dacă este necesar dintr-un tabel careare câteva sute de câmpuri și, să zicem, o mie de înregistrări, selectați numai două câmpuri, atunci ar trebui să utilizați o interogare care returnează numai câmpurile obligatorii și o combină cu proba principală de date. Ca exemplu de MySQL Join Select, puteți lua în considerare o interogare de acest tip:

mysql se alăture

Acestea nu sunt toate utilizările standardMySQL construieste, dar numai cele standard. Cum se folosește structura Join și în ce formă, programul decide el însuși, dar merită să ne amintim și să luăm în considerare rezultatul care trebuie obținut atunci când interogarea este executată.

Știri înrudite