Slå sammen to tabeller i SQL

Sla Sammen To Tabeller I Sql



I SQL refererer tabellsammenslåing til prosessen med å kombinere dataene fra to separate tabeller i en gitt database til en enkelt enhet basert på en felles kolonne eller kriterier. Ja, hvis det høres ut som et bord, er det akkurat det det er.

En tabellsammenslåing eller en tabellsammenslåing er en kjent funksjon i relasjonsdatabaser, og den er utrolig kraftig. Det lar oss konsolidere informasjonen fra flere kilder for å skape mer sammenhengende og meningsfull datainnsikt. Det lar også relasjonsdatabasene være svært skalerbare (ikke fleksible) ettersom vi kan bryte ned dataene i mindre, håndterbare biter som vi kan referere til senere.

I denne opplæringen vil vi dekke det grunnleggende om tabellsammenføyninger eller tabellsammenslåing. La oss se på tabelleksemplene fra den virkelige verden for å styrke kunnskapen vår.







Eksempeltabell

Før vi går inn i tabellsammenføyningens verden, la oss sette opp de grunnleggende tabellene som vi skal bruke til demonstrasjonsformål.



Tenk på to tabeller som inneholder de ansatte og lønnsinformasjon som vist i følgende eksempelspørringer:



LAG BORD-ansatte (

ansatt_id INT AUTO_INCREMENT PRIMARY KEY,

fornavn VARCHAR( femti ),

etternavn VARCHAR( femti ),

avdeling VARCHAR( femti )

);

Vi kan deretter sette inn eksempeldataene i den ansattes tabell som vist i følgende spørsmål:





INSERT INTO ansatte (fornavn, etternavn, avdeling) VERDIER

( 'Alice' , 'Smith' , 'Menneskelige ressurser' ),

( 'Bob' , 'Johnson' , 'Markedsføring' ),

( 'Charlie' , 'Wilson' , 'Finansiere' ),

( 'David' , 'Brun' , 'Salg' ),

( 'Eva' , 'Davis' , 'Enginering' );

La oss fortsette og lage en ny tabell for å lagre lønnsinformasjonen som følger:

LAG TABELL lønn (

salary_id INT AUTO_INCREMENT PRIMARY KEY,

ansatt_id INT,

lønn DESIMAL( 10 , 2 ),

startdato DATE,

sluttdato DATE,

FOREIGN KEY (employee_id) REFERANSER ansatte(employee_id)

);

Legg inn eksempeldataene i tabellen som følger:



INSERT INTO lønn (ansatt_id, lønn, startdato, sluttdato) VERDIER
( 1 , 60 000,00 , '2023-01-01' , '2023-12-31' ),
( 2 , 55 000,00 , '2023-01-01' , '2023-12-31' ),
( 3 , 65000,00 , '2023-01-01' , '2023-12-31' ),
( 4 , 58000,00 , '2023-01-01' , '2023-12-31' ),
( 5 , 70 000,00 , '2023-01-01' , '2023-12-31' );

Dette skulle gi oss to tabeller som kan hjelpe oss med å demonstrere konseptet med tabellsammenføyning/sammenslåing i SQL.

SQL-tabellsammenslåing/tabellsammenføyninger

La oss utforske de ulike typene tabellsammenslåinger vi kan gjøre. Vi vil dekke de grunnleggende etter hvert som vi går videre til mer avanserte.

INDRE BLI MED

Den første og vanligste typen tabellsammenføyning i SQL er en INNER JOIN. En INNER JOIN lar oss kombinere radene fra to tabeller basert på en spesifikk tilstand. Denne typen returnerer da bare radene der det er samsvar mellom tabellene.

La oss ta 'ansatte' og 'lønn'-tabellene som vi laget tidligere som eksempler. For å utføre en INNER JOIN i SQL bruker vi INNER JOIN-klausulen som følger:

PLUKKE UT

e.employee_id,

e.first_name,

e.etternavn,

e.avdeling,

s.lønn

FRA

ansatte e

INNER JOIN lønn s

e.employee_id = s.employee_id;

I den gitte eksempelspørringen bruker vi en INNER JOIN for å slå sammen tabellene 'ansatte' og 'lønninger' i kolonnen 'employee_id' som finnes i begge tabellene. Det resulterende settet inneholder bare de samsvarende radene fra begge tabellene.

Et eksempelutgang er som følger:

VENSTRE YTRE JOIN

Vi har også en LEFT OUTER JOIN som kombinerer alle rader fra venstre tabell og matchende rader fra høyre tabell. Hvis det ikke er samsvar i den høyre tabellen, bruker sammenføyningen NULL-verdien.

PLUKKE UT

e.employee_id,

e.first_name,

e.etternavn,

e.avdeling,

s.lønn

FRA

ansatte e

LEFT JOIN lønn s



e.employee_id = s.employee_id;

I dette eksemplet utfører vi en LEFT OUTER JOIN for å slå sammen tabellene 'ansatte' og 'lønninger'. Alle radene fra tabellen 'ansatte' er inkludert, og de samsvarende radene fra tabellen 'lønninger' legges til. Imidlertid er NULL-verdier inkludert i kolonnen 'lønn' for rader som ikke samsvarer.

SQL UNION

En annen metode for å slå sammen tabellene i SQL er å bruke UNION-operatoren. Denne operatoren lar oss kombinere resultatene av to eller flere utvalgte utsagn til et enkelt resultatsett.

Kolonnene i hver SELECT-setning må ha samme datatype for at unionen skal være aktuelt.

Et eksempel er som følger:

VELG ansatt_id , fornavn , etternavn , avdeling , NULL AS lønn

FRA ansatte e

UNION

SELECT ansatt_id , NULL AS fornavn , NULL AS etternavn , NULL AS avdeling , lønn

FRA lønn s ;

I dette tilfellet slår en UNION sammen tabellene 'ansatte' og 'lønninger'. Vi oppretter deretter NULL-kolonnene i hver SELECT-setning for å sikre at begge tabellene har et tilsvarende antall kolonner.

UNIONS er teknisk vanlige, men de kan være nyttige spesielt når du trenger å slå sammen tabellene med forskjellige strukturer.

Konklusjon

I denne opplæringen utforsket vi det grunnleggende om å slå sammen to tabeller til et enkelt resultatsett. Det er greit å huske på at det er mye mer avanserte sammenføyninger som er omtalt i dette innlegget.