JOIN-erklæring

Ledig

Forudsætninger for JOIN-operatørens udseende

Efterhånden som mængden af ​​data i tabeller vokser, vises der ofte duplikerede værdier i dem. For eksempel har produkttabellen mærkenavne. som nogle gange gentages. Det ville være nyttigt at have en separat mærketabel til dem, som for eksempel ville indeholde sådanne data:

  • id - brand id;
  • navn - mærkenavn;
  • company_owner - navnet på virksomhedens ejer af mærket;
  • company_contacts - kontakter for brandejerens virksomhed.

Så vil vi gerne lave en adressetabel, som vi kan sætte alle adresserne ind i:

  • id – id-adresser;
  • Land;
  • område;
  • by;
  • gade;
  • hus;
  • lynlås.

Desuden ville det i denne tabel være muligt at gemme adresserne på ikke kun mærkeejere, men også adresserne på kunder og medarbejdere. Og denne tilgang er simpelthen en konsekvens af væksten i mængden af ​​data (antallet af rækker i tabellerne). Dette gør det lettere at manipulere data i tabeller og bevare deres integritet.

Når du har 5 ansatte, kan du blot indtaste deres erhverv i besættelseskolonnen . Hvis du har 5 tusind ansatte i din virksomhed, har du brug for en tabel med en liste over x erhverv og deres ansvar.

I Java-sproget er der i øvrigt noget lignende. Hvis du har meget kode i en metode, så er der et ønske om at dele det op i flere metoder. Hvis der er mange metoder i en klasse, så vil jeg dele den op i flere klasser.

Derfor har store databaser tusindvis af tabeller. Og næsten alle forespørgsler udføres på flere tabeller på én gang. Og det kartesiske produkt af rækkerne af tre tabeller i hver af dem har tusind poster er allerede en milliard rækker.

Men blot at filtrere en milliard rækker ved hjælp af WHERE kan tage timer. Derfor tilbød skaberne af SQL-sproget deres løsning - JOIN-operatøren.

Introduktion til JOIN-operatøren

JOIN-operatoren bruges til eksplicit at fortælle SQL-serveren, at vi ikke har brug for et kartesisk produkt af alle rækker af tabeller for alle, men en smart limning af rækker af forskellige tabeller, der refererer til hinanden ved hjælp af et ID (eller på anden måde) . Serveren har en separat algoritme til behandling af tabelsammenføjninger ved hjælp af JOIN-operatoren, som gør det muligt at udføre sådanne operationer meget hurtigere. Den generelle form for JOIN-operatøren er som følger:

table 1 JOIN table 2 ON condition

Der står her, at du skal kombinere tabellerne tabel1 og tabel2 til én tabel, og bruge betingelsen som joinkriteriet .

Lad os tage vores gamle eksempel:

SELECT * FROM employee, task WHERE emploee.id = task.emploee_id

Og omskriv det ved hjælp af JOIN-operatoren:

SELECT * FROM employee JOIN task ON emploee.id = task.emploee_id

Begge forespørgsler vil give det samme resultat i vores tilfælde, men det er kun fordi forespørgslerne er meget enkle. I fremtiden giver WHERE dig mulighed for at opbygge præcis rækkefilteret, og det, der er angivet efter ON, giver dig mulighed for at skrive komplekse scripts til at linke tabeller. Du kan også bruge aliaser (tabelaliaser), når du bruger JOIN-sætningen. Eksempel:

SELECT * FROM employee e JOIN task t ON e.id = t.emploee_id
Kommentarer
  • Populær
  • Ny
  • Gammel
Du skal være logget ind for at skrive en kommentar
Denne side har ingen kommentarer endnu