MySQL MariaDB

MySQL ydre tilslutning

MySQL ydre tilslutning

MySQL leverer mange kommandoer, som er nødvendige, når du administrerer en database. For eksempel har vi ofte brug for at hente nogle data fra forskellige tabeller baseret på en eller anden tilstand. MySQL giver derefter forskellige typer sammenføjninger for at få de ønskede resultater. Lad os lære LEFT JOIN AND RIGHT JOIN af MySQL.

Der er ikke sådan en erklæring som FULL OUTER JOIN i SQL, men vi kan bruge en simpel JOIN til at få de samme resultater eller ved blot at bruge en SELECT-sætning over to forskellige tabeller.

Ellers leverer MySQL VENSTRE MEDLEM og HØJRE MEDLEM for at hente poster eller rækker fra henholdsvis højre eller venstre tabel. Lad os prøve et par forskellige eksempler for at få de ønskede resultater ved hjælp af passende sammenføjninger.

Eksempler

Før vi begynder at lære brugen af ​​LEFT og RIGHT JOIN. Vi vil lære at få alle data fra begge tabeller (enten almindelige eller usædvanlige) ved hjælp af den enkle SELECT-sætning og ved hjælp af CROSS JOIN med SELECT-sætningen. Lad os først prøve at få alle data fra begge tabeller ved hjælp af SELECT-sætningen.

For eksempel er der 2 tabeller, som vi fik med navnet på forfatteren og bøgerne.

DESC bøger;

DESC forfattere;

Hvis vi vil hente alle kolonnerne fra begge tabeller. SELECT-forespørgslen bruges således:

VÆLG * FRA bøger, forfattere;

Som du kan se, har vi alle kolonnerne fra begge tabeller uden engang at give en betingelse.

Hvis vi bruger JOIN- eller CROSS JOIN-klausulen, giver begge os de samme resultater. For eksempel:

VÆLG * FRA bøger BLIV MED forfattere;

Lad os nu prøve at anvende CROSS JOIN:

VÆLG * FRA bøger CROSS JOIN forfattere;

Som du kan være vidne til, giver alle disse forespørgsler os de samme resultater.

Det er dog ikke godt at have alle kolonnerne i en sådan abstrakt form. Så for at få et par specifikke kolonner fra venstre eller højre tabel er der to måder, hvorpå du kan gå videre; en måde er, at du bruger kolonnenavne ved hjælp af SELECT-sætninger eller bruger sammenføjninger, der passer til dit krav.

Okay, lad os nu gå videre for at forstå LEFT JOIN og RIGHT JOIN.

VENSTRE MEDLEM

Antag, at vi ønsker at få nogle specifikke kolonner, der enten er fra bøgetabellen eller fælles mellem bøgerne og forfattertabellen, baseret på en eller anden betingelse, betingelsen leveres faktisk ved at sammenligne to forskellige tabeller. For eksempel vil vi forbinde to tabeller, bøger og forfattere, hvor bogens ID er lig med forfatterens ID. Vi kan forvente et sådant resultat ved at bruge LEFT Join with SELECT-sætningen; VÆLG forespørgsel med de kolonnenavne, du ønsker at få fra enten bogtabellen eller forfatterne. SELECT-forespørgslen med LEFT JOIN og tilstanden ville være sådan:

VÆLG bøger.bognavn, bøger.book_id, forfattere.author_id,
forfattere.author_fname, forfattere.forfatternavn
FRA bøger
VENSTRE FORENEDE forfattere
PÅ bøger.book_id = forfattere.author_id;

Da vi har nævnt bøgetabellen på venstre side, får sammenføjningen ID'et på en række fra bøgtabellen og ser efter det samme ID-nummer i forfatterens tabel. Hvis det finder det samme ID-nummer, viser det også de givne kolonner fra forfatterens tabel. Ellers vises NULL i kolonnerne i forfatterens tabel. Lad os udføre denne forespørgsel og være vidne til resultaterne.

Som du kan se, har vi rækkerne fra begge tabeller, hvor bøger-tabel-id'et er lig med forfatterens tabel-id. I den sidste række kan vi også se, at der ikke er noget ID-nummer 4 i forfatterens tabel, så det har returneret NULL mod det.

HØJRE MEDLEM

Tilsvarende, hvis vi ønsker at få nogle data, enten fra forfatterens tabel eller fælles mellem bøgerne og forfatterens tabel, baseret på nogle betingelser, kan denne slags resultater forventes ved hjælp af RIGHT join og SELECT-klausulen. SELECT-forespørgslen med RIGHT JOIN og tilstanden ville være sådan:

VÆLG bøger.bognavn, bøger.book_id, forfattere.author_id,
forfattere.author_fname, forfattere.forfatternavn
FRA bøger
HØJRE FORENEDE forfattere
PÅ bøger.book_id = forfattere.author_id;

Denne gang ved vi, at forfatternes tabel er på højre side, så sammenføjningen får ID'et på en række fra forfatterens tabel og ser efter det samme ID-nummer i bogens tabel. Hvis det finder det samme ID-nummer, viser det de givne kolonner fra bøger-tabellen. At udføre forespørgslen ville resultere i dette:

Som du kan se, har vi rækkerne fra begge tabeller, hvor forfatterens ID er lig med bogens ID. Vi ved, at der var en fjerde bog i bøgerne, selvom vi ikke fik den, er det på grund af den RETTIGE MEDLEM.

Så dette er, hvordan LEFT JOIN og RIGHT JOIN virkelig fungerer.

Konklusion

Vi har lært og forstået CROSS, LEFT og RIGHT JOIN samt lært at bruge dem til at få de ønskede resultater i MySQL. Vi har også prøvet et par forskellige eksempler på JOINS for at forstå begreberne på en bedre og dybere måde. Så fortsæt med at besøge vores hjemmeside linuxhint.com for mere nyttigt indhold som dette.

Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...
Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...
Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...