Introduktion till Joins i MySQL
MySQL Joins spelar en viktig roll när vi måste gå ihop med två tabeller tillsammans baserat på en eller flera vanliga värden som delas av två tabeller.
Exempel : Låt oss anse att vi har två tabeller, en är medarbetartabellen som består av medarbetarid, phn_no, lön och avdelning. En annan tabell är adresstabellen som består av medarbetarid och adress. Om vi behöver ta reda på medarbetare_id, avdelning och adress, måste vi gå med i båda tabellerna som delar gemensamma fält som medarbetar_id.
Fråga :
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 av sammanfogningar i MySQL
Det finns olika typer av Joins i MySQL. Nedan nämnda sammanfogningar stöter på i daglig användning och mest användbara när du utför många frågor i verkliga fall.
- Inre koppling
- Vänster gå med
- Höger gå med
- Hel yttre koppling
- Själv gå
- Kors gå med
1. Inre gå
Inre join returnerar värdet som matchar i båda tabellerna.
Denna del kommer i utgången som visas på bilden ovan.
Exempel 1:
anst_id | Avdelning | Lön |
1001 | DEN | 1000 |
1002 | CSR | 800 |
1003 | DEN | 2000 |
Detta är medarbetartabellen.
anst_id | Adress |
1002 | delhi |
1003 | Bangalore |
1005 | Bbsr |
Här är adresstabellen för de anställda. Den överordnade tabellmedarbetarens primära nyckel emp_id används som den utländska nyckeln i adresstabellen som är underordnade tabeller. Vi hittar emp_id, avdelning och adress för en anställd som använder inner join. Eftersom inre sammanfogningstillstånd hämtar det de poster som är närvarande / vanliga i båda tabellerna.
Fråga:
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 ger ett alias till tabellnamnet bara för att undvika mer tidskrävande. I frågan ovan använder vi alias 'emp' för medarbetartabellen och 'annonser' för adresstabellen.
Produktion:
anst_id | Avdelning | Adress |
1002 | CSR | delhi |
1003 | DEN | Bangalore |
Som i exemplet ovan emp_id 1002 och 1003 var vanliga mellan båda tabellerna, hämtar det inre sammanfogningskommando endast utmatningen för dessa anställda.
Exempel 2:
Här har vi 2 tabeller, tabell1 och tabell2. Båda tabellerna består av ett attribut vardera som kolumn A respektive kolumn B.
Bord 1
Kolumn A |
1 |
1 |
2 |
3 |
4 |
Tabell 2
Kolumn B |
1 |
2 |
2 |
3 |
3 |
5 |
Fråga:
If we apply inner join here,
SELECT * FROM Table1
INNER JOIN table2
ON columnA = columnB;
Produktion:
Kolumn A | Kolumn B |
1 | 1 |
1 | Null |
2 | 2 |
Null | 2 |
3 | 3 |
Null | 3 |
2. Vänster gå med
Denna sammanfogning returnerar alla poster från det vänstra bordet och de matchade posterna från den högra tabellen.
Som diagrammet ovan visar består det av alla poster i tabell A och de vanliga från A och B.
Exempel 1:
Kundnummer | namn | Stad |
1 | Harish | Cuttack |
2 | David | Bangalore |
3 | Mahesh | Bhubaneswar |
4 | Sam | Kolkata |
Kundtabell:
ORDER_ID | Belopp | Kundnummer |
19868 | 7575, 00 | 4 |
19976 | 434654, 00 | 2 |
99.680 | 7457, 00 | 3 |
Beställningstabell:
Vi kommer att ta reda på customer_id, name och order_id associerade med hjälp av left join.
Fråga:
SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
LEFT JOIN order ord
ON cust.customer_id = ord.customer_id;
Produktion:
Kundnummer | namn | ORDER_ID |
1 | Harish | null |
2 | David | 19976 |
3 | Mahesh | 99.680 |
4 | Sam | 19868 |
När vi diskuterade detta vänster samlade hämtade alla kund-ID från kundtabellen och de vanliga mellan båda tabellerna. För customer_id '1' kommer den att visas som 'null' eftersom '1' customer_id inte finns i ordertabellen.
Exempel 2:
Här har vi 2 tabeller, tabell1 och tabell2. Båda tabellerna består av ett attribut vardera som kolumn A respektive kolumn B.
Bord 1
Kolumn A |
1 |
1 |
2 |
2 |
3 |
Tabell 2
Kolumn B |
1 |
2 |
2 |
4 |
4 |
5 |
5 |
Fråga:
If we apply left join on above 2 tables,
SELECT * FROM table1
LEFT JOIN table2
ON columnA = columnB;
Kolumn A | Kolumn B |
1 | 1 |
1 | Null |
2 | 2 |
2 | 2 |
3 | Null |
3. Right Delta
Denna sammanfogning returnerar alla poster från den högra tabellen och matchande poster från den vänstra tabellen.
Diagrammet ovan visar att det hämtar alla poster från tabell B och den vanliga som finns i båda tabellerna.
Exempel:
Kundnummer | namn | Stad |
3 | Mahesh | Bhubaneswar |
4 | Sam | Kolkata |
5 | Bagge | Mumbai |
Kundtabell:
ORDER_ID | Belopp | Kundnummer |
19868 | 7575, 00 | 4 |
19976 | 434654, 00 | 2 |
99.680 | 7457, 00 | 3 |
Beställningstabell:
Vi kommer att ta reda på customer_id, name och order_id associerade med det genom att använda rätt join.
Fråga:
SELECT cust.Customer_id, cust.Name, ord.Order_id
FROM customer cust
RIGHT JOIN order ord
ON cust.customer_id = ord.customer_id;
Produktion:
Kundnummer | namn | ORDER_ID |
2 | null | 19976 |
3 | Mahesh | 99.680 |
4 | Sam | 19868 |
När vi utförde just gå med här, så hämtade frågan all kund-ID från beställningstabellen och de vanliga poster som finns i båda tabellerna.
4. Full Outer Join
Hela yttre sammanfogningen returnerar alla poster från båda tabellerna om det finns ett gemensamt fält som delas.
Exempel:
Kundnummer | namn | Stad |
3 | Mahesh | Bhubaneswar |
4 | Sam | Kolkata |
5 | Bagge | Mumbai |
Kundtabell:
ORDER_ID | Belopp | Kundnummer |
19868 | 7575, 00 | 4 |
19976 | 434654, 00 | 2 |
99.680 | 7457, 00 | 3 |
Beställningstabell:
Vi kommer att ta reda på customer_id, name och order_id associerade med det genom att använda en fullständig yttre koppling.
Fråga:
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:
Kundnummer | namn | ORDER_ID |
2 | null | 19976 |
3 | Mahesh | 99.680 |
4 | Sam | 19868 |
5 | Bagge | null |
Denna fulla yttre sammanfogning hämtade alla kund-ID från kundtabellen såväl som beställningstabellen.
5. Självmedlem
Självmedlemskap är ett regelbundet sammanfogande och här går bordet bara med sig själv.
anst_id | namn | Telefonnr | Stad | 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 |
Här är medarbetartabellen som består av flera fält. Vi kommer att ta reda på de anställda som bor i samma stad.
Fråga :
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;
Utgång :
Employee_name1 | Employee_name2 | e1.city |
Gobu Sharma | Amit Rout | Pune |
Amit Rout | Gobu Sharma | Pune |
6. Cross Cross
Denna sammanfogning ger ett resultat där antalet rader i den första tabellen multipliceras med raderna i den andra tabellen. Denna typ av resultat kallas den kartesiska produkten. Om vi använder WHERE-klausulen med denna sammanfogning, fungerar detta som en inre koppling.
Exempel:
Prod_id | Produktnamn | Prod_unit | Företags ID |
1 | Chex mix | st | 12 |
2 | Cheez-it | st | 15 |
3 | Kex | st | 16 |
Produkt tabell:
Företags ID | Företagsnamn | Company_city |
15 | foodies | delhi |
16 | Jack n Jill | Cuttack |
17 | Naturlig | Bangalore |
Företagstabell :
Vi kommer att tillämpa en korsning på dessa tabeller.
Fråga :
SELECT p.product_name, p.prod_unit, c.company_name
FROM product p
CROSS JOIN company c;
Utgång :
p.product_name | p.prod_unit | c.company_name |
Chex mix | st | foodies |
Cheez-it | st | foodies |
Kex | st | foodies |
Chex mix | st | Jack n Jill |
Cheez-it | st | Jack n Jill |
Kex | st | Jack n Jill |
Chex mix | st | Naturlig |
Cheez-it | st | Naturlig |
Kex | st | Naturlig |
Slutsats
Betydelsen av dessa sammanfogningar är mycket viktig när du arbetar i realtidsscenarier och i vissa andra tekniker också. I visualiseringar som Tableau och Power BI spelar föreningar en viktig roll. Den strukturerade praktiken av detta är nyckeln till att bädda in dessa nya tekniker och färdigheter.
Rekommenderad artikel
Detta är en guide till Joins i MySQL. Här diskuterar vi de sex främsta typerna av sammanfogningar i MySQL som Inner, Left, Right, Full, Self, Cross och dess exempel tillsammans med Query and Output. du kan också gå igenom våra föreslagna artiklar för att lära dig mer -
- Topp 10 MySQL-kommandon
- Introduktion till MySQL-operatörer
- MySQL vs SQLite | Topp 14 jämförelse
- Topp 23 MySQL String-funktioner
- Förklara Infoga kommando i MySQL med exempel
- Topp 6 skillnader mellan primär nyckel och utländsk nyckel