Venstre bli med PostgreSql

Venstre bli med PostgreSql
PostgreSQL Join er en funksjon som lar deg kombinere kolonner fra en tabell med en eller flere tabeller basert på de vanlige kolonnene mellom de relaterte tabellene. Det er mange typer sammenføyninger, for eksempel indre sammenføyning, ytre sammenføyning, kryssende og selvtillit. Denne artikkelen vil definere venstre sammenføyning i to typer:
  • Venstre ytre sammenføyning
  • Venstre indre bli med

Vi vil forklare hver type med spesifikke eksempler.

Syntaks

Velg tabell_a.Columna, tabell_a.kolonneb, tabell_b.Columna
Fra tabell_a
Venstre bli med tabell_b
På tabell_a.matching_column = tabell_b.matching_column;

Tabell_a innebærer den første tabellen, og tabell_b innebærer den andre tabellen. Matching_column er kolonnen som er til stede i begge tabellene kan være med forskjellige kolonnenavn.

  • Syntaksen viser at vi må spesifisere to tabeller ved å bruke SELECT -setningen.
  • For det andre viser vi hovedtabellen.
  • For det tredje nevner vi tabellen og hovedtabellen har dannet en sammenføyning med.

For å oppnå forståelsen av venstre sammenføyning, må vi lage to tabeller i PostgreSQL. Begge tabellene opprettes ved å bruke kommandoen “Create Table”. Eksempeloppgaven er gitt nedenfor. La tabellnavnet “Element”:

>> Lag tabellelementer (ID -heltall, navn varchar (10), kategori varchar (10), ordre_no heltall, adresse varchar (10), utløp_måned Varchar (10));

Legg nå til verdiene i tabellen ved "Sett inn uttalelse":

>> Sett inn elementer verdier (1, 'dukke', 'leketøy', 4, 'adresse');

Ved å bruke denne kommandoen legges verdiene inn i en enkelt rad i tabellen.

Nå, når vi går tilbake til eksemplet, har vi to tabeller her, den ene er "elementer", og den andre er "ordrer". Du kan se innholdet i tabellene ved å bruke “Select” -kommandoen:

Tabell 1-elementer:

Tabell 2-bestillinger:

Eksempel 1:
Tenk på begge bordene. Disse tabellene er opprettet på en slik måte at en kolonne danner en kobling mellom disse to tabellene. For eksempel spiller ordre_no rollen som å etablere lenken. Følgende kommando bruker klausulen til en venstre sammenføyning for å bli med på "elementer" -tabellen med "ordrer":

>> Velg elementer.id, navn, ordre_id fra varer som blir igjen med bestillinger på bestillinger.order_id = elementer.bestill_no bestill etter navn;

Her får vi den resulterende tabellen når vi valgte "id" og "navn" fra elementene tabell og ordre_no fra bestillingstabellen, så disse tre kolonnene vises. Når en rad fra varetabellen ikke har noen matchende rad med bestillingsbordet, er verdiene til Order_id -kolonnen til den raden null.

Eksempel 2:
Dette eksemplet ligner det forrige, men er forskjellig i å ha en "hvor" -klausul. Dette hjelper til med å finne ordrene som ikke er til stede i bestillingsbordet. Dette oppnås ved å bruke en tilleggserklæring som viser kolonnen tom ved å sammenligne verdiene med plass. Hvis ingen verdi er til stede, velg ID og navn. Dette eksemplet er relatert til den ytre venstre sammenføyningen. Ytre venstre sammenføyning er den der, mens du får den resulterende verdien etter å ha påført begrensninger, alle elementene tilhører et enkelt bord (venstre bord). Hvis et enkelt element blir matchet, er resultatet langt fra den ytre venstre sammenføyningen:

>> Velg elementer.id, varer. Navn, ordre_id fra varer som blir igjen med bestillinger på bestillinger.order_id = elementer.bestill_no hvor bestillinger. id er null bestilling med navn;

Bildet viser at alle de seks radene i "elementene" -tabellen er forskjellige fra "ordrene" -tabellen. Eller "bestillinger" -tabellen inneholder ikke disse verdiene. Derfor er hele kolonnen tom.

Eksempel 3:
Dette eksemplet viser koblingen mellom to tabeller direkte. Som i SELECT -setningen tar vi to kolonner fra tabellelementer og en kolonne fra tabellordrene. Men for dette konseptet må vi nevne kolonnenavnet med tabellnavnet med "Dot-Method", som spesifiserer kolonnen i en bestemt tabell. Dette er et indre venstre -eksempler fordi noen deler av begge tabellene er til stede i det resulterende tabellen:

>> Velg navn, kategori, bestillinger.adresse fra varer som er igjen med ordrer på bestillinger.order_id = elementer.Best.nr,

Derfor vil den resulterende tabellen være kombinasjonen av kolonner fra begge tabellene. Adresse -kolonnen vil bare inneholde adressen til "ordrer" -tabellen som samsvarer med adressen til "elementene" -tabellen.

Tilsvarende, hvis vi endrer "dot-metod" -uttalelsen, gjør det en forskjell. I dette eksemplet har vi erstattet “Bestillinger.adresse ”med adressekolonnen i varetabellen“ Elementer.adresse":

>> Velg navn, kategori, varer.adresse fra varer som er igjen med ordrer på bestillinger.order_id = elementer.Best.nr,

Nå kan du observere at adressekolonnen har alle rader fylt med data som er til stede i "elementer" -tabellen.

Eksempel 4:
Mer enn to kolonner fra hver tabell er valgt her. Noen ganger må vi redusere redundans for å unngå duplisering av data mens vi kombinerer to tabeller. Dette kan bare gjøres ved å bruke begrensninger på mer enn en kolonne for å hente presise og verdifulle data som er sammenhengende i begge tabellene. Så i dette eksemplet ønsker vi å vise navn, adresse og ordre_no som bare er til stede i gjenstandens tabell og ikke i "Bestillings" -tabellen:

>> Velg navn, ordrer_no, ordre_id, varer.adresse fra varer som er igjen med ordrer på bestillinger.order_id = elementer.ordre_no der bestillinger er null;

For å få hele spalten ledig, har vi brukt begrensningen av null. I dette eksemplet har vi igjen spesifisert adressen med varetabellen for å tillate diskriminering med adressekolonnen. Men i det kommende eksemplet har vi erstattet adressen med "Order_Day" fra "Orders" -tabellen. Etter å ha byttet ut kolonnen, er både ordre_id og ordre_dag ledige kolonner i den resulterende tabellen:

>> Velg navn, ordrer_no, ordre_id, ordrer_dag fra varer som blir igjen med bestillinger på bestillinger.order_id = elementer.ordre_no der bestillinger er null;

Vi har bare nevnt ordren_id å være null. Men hvorfor er "ordre_dagen" tom?

Det er en åpenbar faktor at hvis vi bare har valgt de radene med bestillinger_no som ikke er til stede i "ordrene" -tabellen, så hvordan det kan være mulig å ha de "ordre_day" -verdiene hvis ordre_id ikke er til stede.

Implementering via pgadmin

For å implementere kommandoene på pgadmin -siden, må du oppgi passordet i begynnelsen. Naviger nå til venstre stolpe. Du vil bli kjent med databasene på serveren. Utvid Postgres -databasen, da vi har implementert spørsmålene våre her. Etter utvidelse vil du få katalogene, inkludert tabelldata:

Nå, høyreklikk på bordet og velg spørringsverktøyet:

Vi tar det samme eksemplet som beskrevet ovenfor bare for å lage pgadmin i bruk. Skriv følgende spørring i SNAP og i spørringsredigeringsdelen. For å utføre kommandoen, flytt til navigasjonsverktøylinjen nevnt ovenfor. Her er symbolet som symbolet på spill i musikk. Velg dette, og spørringen blir utført. Det vises i datautgangen:

Konklusjon

PostgreSQL -sammenføyningen kombinerer kolonner fra forskjellige tabeller med lignende kolonner. Spesielt kombinerer venstre sammenføyning av tabellen på venstre side. Det betyr at høyre tabell nevnes først i kommandoen og deretter, den andre. Alle forholdene brukes til venstre for å bli med i den indre sammenføyningen eller tilfellet med ytre sammenføyning. Vi håper du fant denne artikkelen nyttig når du bruker venstre sammen med PostgreSQL. Vennligst sjekk ut de andre artiklene for ytterligere informasjon.