Mysql ytre sammenføyning

Mysql ytre sammenføyning

MySQL gir mange kommandoer, som er nødvendige mens du administrerer en database. For eksempel trenger vi ofte å få noen data fra forskjellige tabeller basert på noen tilstand. MySQL gir deretter forskjellige typer sammenføyninger for å få de ønskede resultatene. La oss lære venstre sammen og høyre bli med på mysql.

Det er ingen slike uttalelser som full ytre sammenføyning i SQL, men vi kan bruke en enkel sammenføyning for å få de samme resultatene eller bare ved å bruke en valgt uttalelse over to forskjellige tabeller.

Ellers gir MySQL Venstre bli med og Høyre bli med For å få poster eller rader fra henholdsvis høyre eller venstre bord. La oss prøve et par forskjellige eksempler for å få de ønskede resultatene ved å bruke passende sammenføyninger.

Eksempler

Før vi begynner å lære bruken av venstre og høyre sammen med. Vi lærer hvordan du får alle dataene fra begge tabellene (enten vanlige eller uvanlige) ved å bruke Simple Select -setningen og bruke Cross Join med Select -setningen. La oss først prøve å få alle dataene fra begge tabellene ved å bruke Select -setningen.

For eksempel er det 2 bord som vi fikk med navnet forfatter og bøker.

Desc -bøker; Desc -forfattere;

Hvis vi ønsker å få alle kolonnene fra begge tabellene. SELECT -spørringen vil bli brukt slik:

Velg * fra bøker, forfattere;

Som du ser, har vi alle kolonnene fra begge tabellene uten engang å gi en tilstand.

Hvis vi bruker Join eller Cross Join -leddet, vil begge gi oss de samme resultatene. For eksempel:

Velg * fra bøker som blir med forfattere;

La oss nå prøve å bruke krysset med:

Velg * fra Books Cross Join -forfattere;

Som du kan være vitne til, gir alle disse spørsmålene oss de samme resultatene.

Det er imidlertid ikke bra å ha alle kolonnene i en så abstrakt form. Så for å få noen få spesifikke kolonner fra venstre eller høyre bord, er det to måter du kan fortsette; En måte er at du bruker kolonnenavn ved hjelp av utvalgte utsagn eller bruker sammenføyninger som passer ditt krav.

OK, la oss nå gå videre for å forstå venstre sammen og høyre bli med.

Venstre bli med

Anta at vi ønsker å få noen spesifikke kolonner som enten er fra bøker -tabellen eller er vanlig mellom bøkene og forfattertabellen, basert på en viss tilstand, er tilstanden faktisk gitt ved å sammenligne to forskjellige tabeller. For eksempel ønsker vi å bli med i to tabeller, bøker og forfattere der bokens ID er lik forfatterens ID. Vi kan forvente et slikt resultat ved å bruke venstre sammen med Select -setningen; Velg spørring med kolonnenavnene du vil få fra enten bøker -tabellen eller forfatterne. SELECT -spørringen med venstre sammenføyning og tilstand vil være slik:

Velg bøker.boknavn, bøker.Book_id, forfattere.forfatter_id,
Forfattere.forfatter_fname, forfattere.forfatter_lname
Fra bøker
Venstre bli med forfattere
På bøker.BOOK_ID = Forfattere.forfatter_id;

Siden vi har nevnt bøketabellen på venstre side, vil sammenføyningen få ID -en til en rad fra Books -tabellen og se etter det samme ID -nummeret i forfatterens bord. Hvis det finner samme ID -nummer, vil det også vise de gitte kolonnene fra forfatterens bord. Ellers vil det vise null i kolonnene i forfatterens bord. La oss utføre denne spørringen og være vitne til resultatene.

Som du ser, har vi radene fra begge tabellene der Books Table ID er lik forfatterens tabell -ID. I den siste raden kan vi også se at det ikke er noen ID nummer 4 i forfatterens bord, så det har kommet tilbake null mot det.

Høyre bli med

Tilsvarende, hvis vi ønsker å få noen data, enten fra forfatterens bord eller vanlig mellom bøkene og forfatterens tabell, basert på noen betingelser, kan denne typen resultater forventes ved å bruke riktig sammenføyning og velg klausul. SELECT -spørringen med riktig sammenføyning og tilstand vil være slik:

Velg bøker.boknavn, bøker.Book_id, forfattere.forfatter_id,
Forfattere.forfatter_fname, forfattere.forfatter_lname
Fra bøker
Høyre bli med forfattere
På bøker.BOOK_ID = Forfattere.forfatter_id;

Denne gangen vet vi at forfatterens bord er på høyre side, så sammenføyningen vil få ID -en til en rad fra forfatterens bord og se etter det samme ID -nummeret i bokens bord. Hvis det finner samme ID -nummer, vil det vise de gitte kolonnene fra Books -tabellen. Å utføre spørringen ville resultere i dette:

Som du ser, har vi radene fra begge tabellene der forfatterens ID er lik bokens ID. Vi vet at det var en fjerde bok i Books -tabellen, selv om vi ikke fikk det, er dette på grunn av riktig bli med.

Så det er slik venstre sammen og høyre blir med virkelig fungerer virkelig.

Konklusjon

Vi har lært og forstått korset, venstre og høyre sammen, samt lært å bruke dem for å få de ønskede resultatene i MySQL. Vi har også prøvd et par forskjellige eksempler på sammenføyninger for å forstå konseptene på en bedre og dyp måte.