Slå samman två tabeller i SQL

Sla Samman Tva Tabeller I Sql



I SQL hänvisar tabellsammanslagning till processen att kombinera data från två separata tabeller i en given databas till en enda enhet baserat på en gemensam kolumn eller gemensamma kriterier. Ja, om det låter som ett bord så är det precis vad det är.

En tabellkoppling eller en tabellsammanfogning är en känd funktion i relationsdatabaser, och den är otroligt kraftfull. Det tillåter oss att konsolidera informationen från flera källor för att skapa mer sammanhängande och meningsfulla datainsikter. Det tillåter också att relationsdatabaserna är mycket skalbara (inte flexibla) eftersom vi kan bryta ner data i mindre, hanterbara bitar som vi kan referera till senare.

I den här handledningen kommer vi att täcka grunderna för tabellkopplingar eller tabellsammanslagning. Låt oss titta på de verkliga tabellproverna för att befästa vår kunskap.







Exempeltabell

Innan vi går in i världen av tabellanslutningar, låt oss ställa in de grundläggande tabellerna som vi kommer att använda för demonstrationsändamål.



Tänk på två tabeller som innehåller de anställda och löneinformation som visas i följande exempelfrågor:



SKAPA BORD anställda (

anställd_id INT AUTO_INCREMENT PRIMÄRNYCKEL,

förnamn VARCHAR( femtio ),

efternamn VARCHAR( femtio ),

avdelning VARCHAR( femtio )

);

Vi kan sedan infoga exempeldata i den anställdes tabell som visas i följande frågor:





INSERT INTO anställda (first_name, last_name, department) VÄRDEN

( 'Alice' , 'Smed' , 'Personalavdelning' ),

( 'Guppa' , 'Johnson' , 'Marknadsföring' ),

( 'Charlie' , 'Wilson' , 'Finansiera' ),

( 'David' , 'Brun' , 'Försäljning' ),

( 'Eva' , 'Davis' , 'Teknik' );

Låt oss gå vidare och skapa en ny tabell för att lagra löneinformationen enligt följande:

SKAPA TABELL löner (

lön_id INT AUTO_INCREMENT PRIMARY KEY,

anställd_id INT,

lön DECIMAL( 10 , 2 ),

startdatum DATE,

slutdatum DATE,

FOREIGN KEY (employee_id) REFERENCES anställda(employee_id)

);

Lägg till infoga exempeldata i tabellen enligt följande:



INSERT INTO löner (anställd_id, lön, startdatum, slutdatum) VÄRDEN
( 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' );

Detta bör ge oss två tabeller som kan hjälpa oss att demonstrera konceptet med tabellsammanfogningar/sammanslagning i SQL.

SQL Table Merge/Table Joins

Låt oss utforska de olika typerna av tabellsammanslagningar som vi kan göra. Vi kommer att täcka de grundläggande när vi går vidare till mer avancerade.

INRE KOPPLING

Den första och vanligaste typen av tabellkoppling i SQL är en INNER JOIN. En INNER JOIN tillåter oss att kombinera raderna från två tabeller baserat på ett specifikt villkor. Denna typ returnerar sedan endast de rader där det finns en matchning mellan tabellerna.

Låt oss ta tabellerna 'anställda' och 'löner' som vi skapade tidigare som exempel. För att utföra en INNER JOIN i SQL använder vi INNER JOIN-satsen enligt följande:

VÄLJ

e.employee_id,

e.first_name,

e.efternamn,

e.avdelning,

s.lön

FRÅN

anställda e

INNER JOIN löner s

e.employee_id = s.employee_id;

I den givna exempelfrågan använder vi en INNER JOIN för att slå samman tabellerna 'anställda' och 'löner' i kolumnen 'anställd_id' som finns i båda tabellerna. Den resulterande uppsättningen innehåller endast de matchande raderna från båda tabellerna.

Ett exempel på utdata är följande:

VÄNSTER YTTRE FOGA

Vi har även en LEFT OUTER JOIN som kombinerar alla rader från den vänstra tabellen och de matchande raderna från den högra tabellen. Om det inte finns någon matchning i den högra tabellen använder joinen värdet NULL.

VÄLJ

e.employee_id,

e.first_name,

e.efternamn,

e.avdelning,

s.lön

FRÅN

anställda e

LEFT JOIN löner s



e.employee_id = s.employee_id;

I det här exemplet utför vi en LEFT OUTER JOIN för att slå samman tabellerna 'anställda' och 'löner'. Alla rader från tabellen 'anställda' ingår och de matchande raderna från tabellen 'löner' läggs till. Däremot ingår NULL-värden i kolumnen 'lön' för rader som inte matchar.

SQL UNION

En annan metod för att sammanfoga tabellerna i SQL är att använda UNION-operatorn. Denna operator tillåter oss att kombinera resultaten av två eller flera valda uttalanden till en enda resultatuppsättning.

Kolumnerna i varje SELECT-sats måste ha samma datatyp för att föreningen ska vara tillämplig.

Ett exempel är följande:

VÄLJ anställd_id , förnamn , efternamn , avdelning , NULL AS lön

FRÅN anställda e

UNION

SELECT anställd_id , NULL AS förnamn , NULL AS efternamn , NULL AS avdelning , lön

FRÅN löner s ;

I det här fallet slår en UNION samman tabellerna 'anställda' och 'löner'. Vi skapar sedan NULL-kolumnerna i varje SELECT-sats för att säkerställa att båda tabellerna har ett liknande antal kolumner.

UNIONS är tekniskt vanliga men de kan vara användbara speciellt när du behöver slå samman tabellerna med olika strukturer.

Slutsats

I den här handledningen utforskade vi grunderna för att sammanfoga/sammanfoga två tabeller till en enda resultatuppsättning. Det är bra att tänka på att det finns mycket mer avancerade sammanfogningar som diskuteras i det här inlägget.