Introduktion til Joins i MySQL

MySQL Joins spiller en vigtig rolle, når vi skal sammenføje to tabeller sammen baseret på en eller flere fælles værdier, der deles af to tabeller.

Eksempel : Lad os overveje, at vi har to tabeller, den ene er medarbejderbordet, der består af medarbejder_id, phn_no, løn og afdeling. En anden tabel er adressetabellen, der består af medarbejder_id og adresse. Hvis vi har brug for at finde ud af medarbejder_id, afdeling og adresse, er vi nødt til at deltage i begge tabeller, der deler fælles felt som medarbejder_id.

Forespørgsel :

SELECT e1.employee_id, e1.department, a1.address
FROM employee e1
INNER JOIN address a1
ON e1.employee_id = a1.employee_id;

Top 6 typer sammenføjninger i MySQL

Der er forskellige typer sammenføjninger i MySQL. Nedenfor nævnte sammenføjninger støder på i daglig brug og mest nyttige, når du udfører mange forespørgsler i reelle tilfælde.

  1. Indvendig slutte sig til
  2. Venstre deltager
  3. Højre deltag
  4. Fuld ydre sammenføjning
  5. Self-slutte
  6. Kryds sammen med

1. Indre sammenføjning

Inner join returnerer den værdi, der matcher i begge tabeller.

Denne del kommer i output som vist på billedet ovenfor.

Eksempel 1:

Emp_id Afdeling Løn
1001 DET 1000
1002 CSR 800
1003 DET 2000

Dette er medarbejderbordet.

Emp_id Adresse
1002 Delhi
1003 Bangalore
1005 BBSR

Her er adressetabellen for disse ansatte. Den overordnede tabel-medarbejders primære nøgle emp_id bruges som den fremmede nøgle i adressetabellen, som er underordnet tabel. Vi finder en medarbejders emp_id, afdeling og adresse ved hjælp af inner join. Fordi indre sammenføjningstilstande henter det de poster, der er til stede / fælles i begge tabeller.

Forespørgsel:

SELECT emp.emp_id, emp.department, ads.address
FROM employee AS emp
INNER JOIN address AS ads
ON emp.emp_id = ads.emp_id;

Vi giver et alias til bordnavnet bare for at undgå mere tidskrævende. I ovenstående forespørgsel bruger vi aliaset 'emp' til medarbejderbordet og 'annoncer' til adressetabellen.

Produktion:

Emp_id Afdeling Adresse
1002 CSR Delhi
1003 DET Bangalore

Som i ovenstående eksempel emp_id 1002 og 1003 var fælles mellem begge tabellerne, henter den indre sammenkoblings-kommando kun output for disse ansatte.

Eksempel 2:

Her har vi 2 borde, tabel1 og tabel2. Begge tabeller består af en attribut hver som henholdsvis kolonne A og kolonne B.

Tabel 1

Kolonne A
1
1
2
3
4

Tabel2

Søjle B
1
2
2
3
3
5

Forespørgsel:

If we apply inner join here,
SELECT * FROM Table1
INNER JOIN table2
ON columnA = columnB;

Produktion:

Kolonne A Søjle B
1 1
1 Nul
2 2
Nul 2
3 3
Nul 3

2. Venstre deltag

Denne sammenføjning returnerer alle poster fra den venstre tabel og de matchede poster fra den højre tabel.

Som diagrammet ovenfor viser, består det af alle poster i tabel A og de almindelige fra A og B.

Eksempel 1:

Kunde ID Navn by
1 Harish Cuttack
2 David Bangalore
3 Mahesh Bhubaneswar
4 Sam Kolkata

Kundetabel:

Ordre ID Beløb Kunde ID
19868 7575, 00 4
19976 434654, 00 2
99.680 7457, 00 3

Bestillingstabel:

Vi finder ud af customer_id, name og order_id tilknyttet ved hjælp af left join.

Forespørgsel:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
LEFT JOIN order ord
ON cust.customer_id = ord.customer_id;

Produktion:

Kunde ID NavnOrdre ID
1 Harish nul
2 David 19976
3 Mahesh 99.680
4 Sam 19868

Da vi diskuterede denne venstre samling, hentede alle kunde-id fra kundetabellen og de fælles mellem begge tabeller. For customer_id '1' vises det som 'null', fordi '1' customer_id ikke er til stede i ordretabellen.

Eksempel 2:

Her har vi 2 borde, tabel1 og tabel2. Begge tabeller består af en attribut hver som henholdsvis kolonne A og kolonne B.

Tabel 1

Kolonne A
1
1
2
2
3

Tabel2

Søjle B
1
2
2
4
4
5
5

Forespørgsel:

If we apply left join on above 2 tables,
SELECT * FROM table1
LEFT JOIN table2
ON columnA = columnB;

Kolonne A Søjle B
1 1
1 Nul
2 2
2 2
3 Nul

3. Right Join

Denne sammenføjning returnerer alle poster fra den højre tabel og de matchende poster fra den venstre tabel.

Ovenstående diagram viser, at det henter alle poster fra tabel B og den fælles, der findes i begge tabeller.

Eksempel:

Kunde ID Navn by
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 Vædder Mumbai

Kundetabel:

Ordre ID Beløb Kunde ID
19868 7575, 00 4
19976 434654, 00 2
99.680 7457, 00 3

Bestillingstabel:

Vi finder ud af customer_id, name og order_id der er knyttet til det ved hjælp af den rigtige join.

Forespørgsel:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
RIGHT JOIN order ord
ON cust.customer_id = ord.customer_id;

Produktion:

Kunde ID Navn Ordre ID
2 nul 19976
3 Mahesh 99.680
4 Sam 19868

Da vi udførte lige sammen med dette, hentede forespørgslen alle kunde-id fra ordretabellen og de fælles poster, der er i begge tabeller.

4. Fuld ydre sammenføjning

Den fulde ydre sammenføjning returnerer alle poster fra begge tabeller, hvis der er et fælles felt, der deles.

Eksempel:

Kunde ID Navn by
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 Vædder Mumbai

Kundetabel:

Ordre ID Beløb Kunde ID
19868 7575, 00 4
19976 434654, 00 2
99.680 7457, 00 3

Bestillingstabel:

Vi finder ud af customer_id, name og order_id der er knyttet til det ved hjælp af en fuld ydre sammenføjning.

Forespørgsel:

SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
FULL OUTER JOIN order ord
ON cust.customer_id = ord.customer_id;

Produktion:

Kunde ID Navn Ordre ID
2 nul 19976
3 Mahesh 99.680
4 Sam 19868
5 Vædder nul

Denne fulde ydre sammenhæng hentede alle kunde-id fra kundetabellen såvel som ordrestabellen.

5. Selvmeddelelse

Selvsamling er en regelmæssig sammenføjning, og her forenes tabellen kun med sig selv.

Emp_id Navn Telefon Nej by Land
1001 R. Madhvan 9687687698 Bangalore Indien
1002 Gobu Sharma 9856453423 Pune Indien
1003 Debasish Das 8765456787 Mumbai Indien
1004 Amit Rout 4567788635 Pune Indien
1005 Sambit Kar 8789887873 Hyderabad Indien

Her er medarbejderbordet bestående af flere felter. Vi finder ud af de ansatte, der bor i samme by.

Forespørgsel :

SELECT e1.name AS Employee_name1, e2.name AS employee_name2, e1.City
FROM employee e1, employee e2
WHERE e1.name e2.name
AND e1.city = e2.city;

Output :

Employee_name1 Employee_name2 e1.city
Gobu Sharma Amit Rout Pune
Amit Rout Gobu Sharma Pune

6. Cross Join

Denne sammenføjning giver et resultat, hvor antallet af rækker i den første tabel multipliceres med rækkerne i den anden tabel. Denne form for resultat kaldes det kartesiske produkt. Hvis vi bruger WHERE-klausulen med denne sammenføjning, fungerer dette som en indre sammenføjning.

Eksempel:

prod_id Produktnavn Prod_unit Company_id
1 Chex mix Stk 12
2 Cheez-det Stk 15
3 Kiks stk 16

Produkt tabel:

Company_id Firmanavn Company_city
15 foodies Delhi
16 Jack n Jill Cuttack
17 Naturlig Bangalore

Virksomhedstabel :

Vi anvender en krydsforbindelse til disse tabeller.

Forespørgsel :

SELECT p.product_name, p.prod_unit, c.company_name
FROM product p
CROSS JOIN company c;

Output :

p.product_name p.prod_unit c.company_name
Chex mix Stk foodies
Cheez-det Stk foodies
Kiks Stk foodies
Chex mix Stk Jack n Jill
Cheez-det Stk Jack n Jill
Kiks Stk Jack n Jill
Chex mix Stk Naturlig
Cheez-det Stk Naturlig
Kiks Stk Naturlig

Konklusion

Betydningen af ​​disse sammenføjninger er meget vigtig, mens du arbejder i realtidsscenarier såvel som i nogle andre teknologier. I visualiseringer som Tableau og Power BI spiller sammenføjninger en vigtig rolle. Den strukturerede praksis med dette er nøglen til at integrere disse nye teknikker og færdigheder.

Anbefalet artikel

Dette er en guide til Joins i MySQL. Her diskuterer vi de øverste 6 sammenføjningstyper i MySQL som indre, venstre, højre, fuld, selv, kryds og dens eksempler sammen med forespørgsel og output. Du kan også gennemgå vores foreslåede artikler for at lære mere -

  1. Top 10 MySQL-kommandoer
  2. Introduktion til MySQL-operatører
  3. MySQL vs SQLite | Top 14 sammenligning
  4. Top 23 MySQL strengfunktioner
  5. Forklar Indsæt kommando i MySQL med eksempler
  6. Top 6 forskelle af primær nøgle vs udenlandsk nøgle