Introduksjon til Joins i MySQL

MySQL Joins spiller en viktig rolle når vi må slå sammen to tabeller basert på en eller flere vanlige verdier som deles av to tabeller.

Eksempel : La oss vurdere at vi har to tabeller, det ene er ansattstabellen som består av medarbeider_id, phn_no, lønn og avdeling. En annen tabell er adressetabellen som består av medarbeider-ID og adresse. Hvis vi trenger å finne ut medarbeider_id, avdeling og adresse, må vi bli med i begge tabellene som deler felles felt som medarbeider_id.

Spørsmål :

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

Topp 6 typer sammenføyninger i MySQL

Det er forskjellige typer sammenføyninger i MySQL. Nedenfor nevnte sammenføyninger kommer over dag til dag og er mest nyttige når du utfører mange spørsmål i virkelige tilfeller.

  1. Indre bli med
  2. Venstre blir med
  3. Høyre bli med
  4. Full ytre sammenføyning
  5. Egenkombinering
  6. Kryss sammen

1. Inner Join

Inner join returnerer verdien som samsvarer i begge tabellene.

Denne delen kommer i utdataene som vist på bildet over.

Eksempel 1:

Emp_id Avdeling Lønn
1001 DEN 1000
1002 CSR 800
1003 DEN 2000

Dette er ansattes tabell.

Emp_id Adresse
1002 Delhi
1003 Bangalore
1005 BBSR

Her er adressetabellen for de ansatte. Overordnet bordansattes primære nøkkel emp_id brukes som fremmednøkkel i adressetabellen som er barnetabellen. Vi vil finne emp_id, avdeling og adresse til en ansatt ved bruk av inner join. Fordi indre sammenføyningstilstander henter det postene som er til stede / vanlige i begge tabellene.

Spørsmål:

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 gir et alias til tabellenavnet bare for å unngå mer tidkrevende. I spørsmålet ovenfor bruker vi alias 'emp' for medarbeiderbordet og 'annonser' for adressetabellen.

Produksjon:

Emp_id Avdeling Adresse
1002 CSR Delhi
1003 DEN Bangalore

Som i eksemplet ovenfor emp_id 1002 og 1003 var vanlig mellom begge tabellene, henter den indre sammenføyningskommandoen bare utdataene for disse ansatte.

Eksempel 2:

Her har vi 2 tabeller, tabell1 og tabell2. Begge tabellene består av ett attributt hver som henholdsvis kolonne A og kolonne B.

Tabell1

Kolonne A
1
1
2
3
4

table2

Kolonne B
1
2
2
3
3
5

Spørsmål:

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

Produksjon:

Kolonne A Kolonne B
1 1
1 Null
2 2
Null 2
3 3
Null 3

2. Venstre bli med

Denne sammenføyningen returnerer alle postene fra venstre bord og matchede poster fra høyre bord.

Som diagrammet over viser, består det av alle poster i tabell A og de vanlige fra A og B.

Eksempel 1:

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

Kundetabell:

Bestillings ID Beløp Kunde ID
19868 7575, 00 4
19976 434654, 00 2
99680 7457, 00 3

Bestill tabell:

Vi vil finne ut customer_id, name og order_id tilknyttet ved bruk av left join.

Spørsmål:

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

Produksjon:

Kunde ID NavnBestillings ID
1 Harish null
2 David 19976
3 Mahesh 99680
4 Sam 19868

Da vi diskuterte dette linket hentet all kunde-ID fra kundetabellen og de vanlige mellom begge tabellene. For customer_id '1' vil den vises som 'null' fordi '1' customer_id ikke er til stede i ordretabellen.

Eksempel 2:

Her har vi 2 tabeller, tabell1 og tabell2. Begge tabellene består av ett attributt hver som henholdsvis kolonne A og kolonne B.

Tabell1

Kolonne A
1
1
2
2
3

table2

Kolonne B
1
2
2
4
4
5
5

Spørsmål:

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

Kolonne A Kolonne B
1 1
1 Null
2 2
2 2
3 Null

3. Høyre med

Denne sammenføyningen returnerer alle postene fra høyre bord og matchende fra venstre tabell.

Diagrammet ovenfor viser at det henter alle poster fra tabell B og den vanlige som finnes i begge tabellene.

Eksempel:

Kunde ID Navn By
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 RAM Mumbai

Kundetabell:

Bestillings ID Beløp Kunde ID
19868 7575, 00 4
19976 434654, 00 2
99680 7457, 00 3

Bestill tabell:

Vi vil finne ut customer_id, name og order_id tilknyttet det ved å bruke riktig join.

Spørsmål:

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

Produksjon:

Kunde ID Navn Bestillings ID
2 null 19976
3 Mahesh 99680
4 Sam 19868

Mens vi utførte riktig bli med her, så hentet spørringen all kunde-ID fra bestillingstabellen og de vanlige postene som er i begge tabellene.

4. Full ytre del

Full ytre sammenføyning returnerer alle postene fra begge tabellene hvis det er et felles felt som deles.

Eksempel:

Kunde ID Navn By
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 RAM Mumbai

Kundetabell:

Bestillings ID Beløp Kunde ID
19868 7575, 00 4
19976 434654, 00 2
99680 7457, 00 3

Bestill tabell:

Vi vil finne ut customer_id, name og order_id tilknyttet det ved å bruke en full ytre sammenføyning.

Spørsmål:

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

Produksjon:

Kunde ID Navn Bestillings ID
2 null 19976
3 Mahesh 99680
4 Sam 19868
5 RAM null

Denne fulle ytre sammenføyningen hentet all kunde-ID fra kundetabellen så vel som bestillingsbordet.

5. Selvmedlem

Selvmedlemskap er en vanlig sammenføyning og her blir bordet bare sammen med seg selv.

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

Her er ansattstabellen som består av flere felt. Vi vil finne ut de ansatte som bor i samme by.

Spørsmål :

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;

Utgang :

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

6. Cross Join

Denne sammenføyningen gir et resultat der antall rader i den første tabellen blir multiplisert med radene i den andre tabellen. Denne typen resultater kalles det kartesiske produktet. Hvis vi bruker WHERE-leddet med denne sammenføyningen, vil dette fungere som en indre sammenføyning.

Eksempel:

Prod_id Produktnavn Prod_unit Bedrifts-ID
1 Chex-blanding stk 12
2 Cheez-it stk 15
3 Kjeks stk 16

Produkt tabell:

Bedrifts-ID Selskapsnavn Company_city
15 foodies Delhi
16 Jack n Jill Cuttack
17 Naturlig Bangalore

Firmabord:

Vi vil bruke en kryssforbindelse til disse tabellene.

Spørsmål :

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

Utgang :

p.product_name p.prod_unit c.company_name
Chex-blanding stk foodies
Cheez-it stk foodies
Kjeks stk foodies
Chex-blanding stk Jack n Jill
Cheez-it stk Jack n Jill
Kjeks stk Jack n Jill
Chex-blanding stk Naturlig
Cheez-it stk Naturlig
Kjeks stk Naturlig

Konklusjon

Betydningen av disse sammenføyningene er veldig viktig når du arbeider i sanntids scenarier, så vel som i noen andre teknologier. I visualiseringer som Tableau og Power BI spiller sammenføyninger en viktig rolle. Den strukturerte praksisen med dette er nøkkelen til å legge inn disse nye teknikkene og ferdighetene.

Anbefalt artikkel

Dette er en guide til Joins i MySQL. Her diskuterer vi de 6 beste sammenføyningene i MySQL som indre, venstre, høyre, full, selv, kryss og dens eksempler sammen med spørring og utdata. kan du også gå gjennom de foreslåtte artiklene våre for å lære mer -

  1. Topp 10 MySQL-kommandoer
  2. Introduksjon til MySQL Operators
  3. MySQL vs SQLite | Topp 14 sammenligning
  4. Topp 23 MySQL strengfunksjoner
  5. Forklar Sett inn kommando i MySQL med eksempler
  6. Topp 6 forskjeller av primærnøkkel vs fremmednøkkel