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.
- Indre bli med
- Venstre blir med
- Høyre bli med
- Full ytre sammenføyning
- Egenkombinering
- 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 | Navn | Bestillings 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 -
- Topp 10 MySQL-kommandoer
- Introduksjon til MySQL Operators
- MySQL vs SQLite | Topp 14 sammenligning
- Topp 23 MySQL strengfunksjoner
- Forklar Sett inn kommando i MySQL med eksempler
- Topp 6 forskjeller av primærnøkkel vs fremmednøkkel