Alăturați-vă în sql

Alăturați-vă în sql

ÎNSCRIEȚI-comandă în SQL-interogare este de a combina selecții din mai multe tabele într-un singur set de rezultate, iar în eșantionul rezultat sunt toate domeniile de toate tabelele implicate într-o interogare. Să examinăm mai atent utilizarea JOIN în SQL.

Există mai multe opțiuni pentru solicitarea JOIN. vom începe cu cele mai populare, și anume INNER JOIN:

SELECT * FROM `users` subscribers` INTERIOARĂ JOIN` ON` users`.`email` = `subscribers`.`email`

Cu o cerere similară, am recuperat toate înregistrările, în care toți utilizatorii site-ului, care sunt și abonați, vor fi incluși în eșantion.

Particularitatea INNER JOIN este că rezultatul include toate câmpurile cu toate valorile. Numărul de înregistrări este exact la fel de mulțumit de condițiile ambelor tabele.

Acum, să trecem la următoarea versiune de JOIN. mai exact la LEFT OUTOUN JOIN:

SELECT * FROM `utilizatorii` LOAȚI LIVRĂ "JOIN`" abonați `ON` users``email` = `subscribers```email`

Particularitatea acestei interogări este că rezultatul selecției conține înregistrări care satisfac tabelul stâng. Dacă aceștia satisfac și condițiile din tabelul de drept, atunci acesta este identic cu INNER JOIN. altfel, în loc de valorile din tabelul din dreapta, va fi NULL.

Acum du-te la JOIN RIGHT OUTER:

SELECT * FROM `utilizatorii` DREAPTA JOIN` JOIN `abonații` pe 'users```email` = `subscribers```email`

Oglindă opusă legăturii din stânga. acum NULL sunt prezente în primul tabel, adică în stânga.

Și, în final, ultimul tip de JOIN este CROSS JOIN:

SELECT * FROM `users`` CROSS JOIN` wires`

Această interogare produce toate combinațiile posibile de două tabele. În această interogare, numărul de înregistrări care rezultă este multiplicarea numărului de înregistrări din ambele tabele.

Încă nu ți-am spus despre JOIN FULL OUTER. care nu este suportat de MySQL. Dar, în opinia mea, nu este necesar. Particularitatea lui este că emite un șir în care există cel puțin o potrivire cu oricare dintre tabele. În consecință, în cealaltă tabelă (în care nu există nici o potrivire cu condiția), NULL merge. De fapt, aceasta este o combinație între LEFT OUTOUN JOIN și RIGHT OUTOUN JOIN:

SELECT * FROM `users` LEFT OUTER JOIN` subscribers` PE` users`.`email` = `subscribers`.`email` UNION SELECT * FROM` users` DREAPTA EXTERIOR JOIN` subscribers` PE `users`.`email` = "abonați"

Așa că am spus despre toate soiurile de JOIN în SQL. Este demn de remarcat faptul că tema este foarte complexă și este rareori înțeleasă de la prima dată. Prin urmare, vă recomand să vă uitați întotdeauna la modul în care aceste interogări funcționează cu exemplul tabelelor dvs. (dacă acestea nu există, creați-le). Verificați toate soiurile de JOIN și vedeți cum diferă acestea.

Recomanda acest articol prietenilor tai:

Dacă ți-a plăcut site-ul, atunci trimiți un link spre el (pe site-ul tău, pe forum, în contact):

Se pare ca aceasta:

  • Codul BB al legăturilor pentru forumuri (de exemplu, îl puteți pune în semnătură):
  • Și cum puteți sorta datele de ieșire? Că suntem uniți de aceleași două interogări ale Uniunii, precum și modul de a face comanda prin, și pe ce cererea, și cum să-l spun?

    La sfârșitul interogării, o puteți specifica după toate JOIN-urile. Specifică, de asemenea, atât WHERE, cât și LIMIT.