Introductie tot Joins in MySQL

MySQL Joins speelt een belangrijke rol wanneer we twee tabellen moeten samenvoegen op basis van een of meer gemeenschappelijke waarden die door twee tabellen worden gedeeld.

Voorbeeld : Laten we eens kijken dat we twee tabellen hebben, één is de medewerkertabel die bestaat uit employee_id, phn_no, salaris en afdeling. Een andere tabel is de adrestabel die bestaat uit employee_id en adres. Als we werknemer-id, afdeling en adres moeten achterhalen, moeten we deelnemen aan beide tabellen die het gemeenschappelijke veld delen als werknemer-id.

Vraag :

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

Top 6 soorten joins in MySQL

Er zijn verschillende soorten Joins in MySQL. De onderstaande joins komen in het dagelijks gebruik voor en zijn het handigst bij het uitvoeren van veel vragen in echte scenario's.

  1. Innerlijke verbinding
  2. Links meedoen
  3. Rechts meedoen
  4. Volledige buitenste voeg
  5. Self-join
  6. Cross join

1. Innerlijke verbinding

Inner join retourneert de waarde die overeenkomt in beide tabellen.

Dit gedeelte komt in de uitvoer zoals weergegeven in de bovenstaande afbeelding.

Voorbeeld 1:

emp_id afdeling Salaris
1001 HET 1000
1002 CSR 800
1003 HET 2000

Dit is de medewerkerstabel.

emp_id Adres
1002 Delhi
1003 Bangalore
1005 BBSR

Hier is de adrestabel van die werknemers. De primaire sleutel emp_id van de bovenliggende tabelmedewerker wordt gebruikt als de externe sleutel in de adrestabel die de onderliggende tabel is. We zullen de emp_id, afdeling en het adres vinden van één medewerker die inner join gebruikt. Omdat inner join staat haalt het de records die aanwezig / gemeenschappelijk zijn in beide tabellen.

Query:

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

We geven een alias aan de tabelnaam alleen om meer tijdrovend te voorkomen. In de bovenstaande zoekopdracht gebruiken we de alias 'emp' voor de medewerkerstabel en 'advertenties' voor de adrestabel.

Output:

emp_id afdeling Adres
1002 CSR Delhi
1003 HET Bangalore

Omdat in het bovenstaande voorbeeld emp_id 1002 en 1003 gebruikelijk was tussen beide tabellen, haalt het commando inner join alleen de uitvoer op voor deze werknemers.

Voorbeeld 2:

Hier hebben we 2 tabellen, table1 & table2. Beide tabellen bestaan ​​uit één attribuut elk als respectievelijk kolom A en kolom B.

Tafel 1

Kolom A
1
1
2
3
4

Tafel 2

Kolom B
1
2
2
3
3
5

Query:

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

Output:

Kolom A Kolom B
1 1
1 Nul
2 2
Nul 2
3 3
Nul 3

2. Linker deelname

Deze join retourneert alle records uit de linker tabel en de overeenkomende records uit de rechter tabel.

Zoals het diagram hierboven laat zien, bestaat het uit alle records van tabel A en de gemeenschappelijke uit A en B.

Voorbeeld 1:

Klanten ID Naam stad
1 Harish Cuttack
2 David Bangalore
3 Mahesh Bhubaneswar
4 Sam Kolkata

Klantentabel:

Order ID Bedrag Klanten ID
19868 7575, 00 4
19976 434.654, 00 2
99680 7457, 00 3

Bestellingstabel:

We zullen klant_id, naam en order_id vinden die zijn gekoppeld met behulp van link join.

Query:

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

Output:

Klanten ID NaamOrder ID
1 Harish nul
2 David 19976
3 Mahesh 99680
4 Sam 19868

Zoals we dit hebben besproken, heeft left join alle klant-id's opgehaald uit de klantentabel en de gemeenschappelijke tussen beide tabellen. Voor customer_id '1' wordt deze weergegeven als 'null' omdat de '1' customer_id niet aanwezig is in de besteltabel.

Voorbeeld 2:

Hier hebben we 2 tabellen, table1 & table2. Beide tabellen bestaan ​​uit één attribuut elk als respectievelijk kolom A en kolom B.

Tafel 1

Kolom A
1
1
2
2
3

Tafel 2

Kolom B
1
2
2
4
4
5
5

Query:

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

Kolom A Kolom B
1 1
1 Nul
2 2
2 2
3 Nul

3. Rechts meedoen

Deze join retourneert alle records uit de rechtertabel en de overeenkomende records uit de linkertabel.

Het bovenstaande diagram toont dat het alle records uit tabel B haalt en de gemeenschappelijke die in beide tabellen aanwezig is.

Voorbeeld:

Klanten ID Naam stad
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 RAM Mumbai

Klantentabel:

Order ID Bedrag Klanten ID
19868 7575, 00 4
19976 434.654, 00 2
99680 7457, 00 3

Bestellingstabel:

We zullen klant-ID, naam en order-ID vinden die eraan zijn gekoppeld met de juiste join.

Query:

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

Output:

Klanten ID Naam Order ID
2 nul 19976
3 Mahesh 99680
4 Sam 19868

Omdat we hier correct join hebben uitgevoerd, heeft de query alle klant-ID's opgehaald uit de besteltabel en de gemeenschappelijke records in beide tabellen.

4. Volledige deelname aan de buitenwereld

De volledige outer join retourneert alle records uit beide tabellen als er een gemeenschappelijk veld wordt gedeeld.

Voorbeeld:

Klanten ID Naam stad
3 Mahesh Bhubaneswar
4 Sam Kolkata
5 RAM Mumbai

Klantentabel:

Order ID Bedrag Klanten ID
19868 7575, 00 4
19976 434.654, 00 2
99680 7457, 00 3

Bestellingstabel:

We zullen klant-ID, naam en order-ID vinden die eraan zijn gekoppeld met behulp van een volledige outer join.

Query:

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

Output:

Klanten ID Naam Order ID
2 nul 19976
3 Mahesh 99680
4 Sam 19868
5 RAM nul

Met deze volledige outer join werden alle klant-ID's van de klantentabel en de besteltabel opgehaald.

5. Zelf deelnemen

Self-join is een normale join en hier sluit de tabel zich alleen aan.

emp_id Naam Telefoon nr stad land
1001 R. Madhvan 9687687698 Bangalore Indië
1002 Gobu Sharma 9856453423 Pune Indië
1003 Debasish Das 8765456787 Mumbai Indië
1004 Amit Rout 4567788635 Pune Indië
1005 Sambit Kar 8789887873 Hyderabad Indië

Hier is de medewerkerstabel die uit verschillende velden bestaat. We zullen de werknemers ontdekken die in dezelfde stad wonen.

Vraag :

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;

Uitgang :

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

6. Cross-join

Deze join levert een resultaat op waarbij het aantal rijen in de eerste tabel wordt vermenigvuldigd met de rijen in de tweede tabel. Dit soort resultaat wordt het Cartesiaanse product genoemd. Als we de WHERE-clausule gebruiken met deze join, werkt dit als een innerlijke join.

Voorbeeld:

Prod_id Productnaam Prod_unit Bedrijfs ID
1 Chex mix pcs 12
2 Cheez-it pcs 15
3 Biscuit pcs 16

Product tabel:

Bedrijfs ID Bedrijfsnaam Company_city
15 foodies Delhi
16 Jack n Jill Cuttack
17 natuurlijk Bangalore

Bedrijfstabel :

We zullen een cross-join toepassen op deze tabellen.

Vraag :

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

Uitgang :

p.product_name p.prod_unit c.company_name
Chex mix pcs foodies
Cheez-it pcs foodies
Biscuit pcs foodies
Chex mix pcs Jack n Jill
Cheez-it pcs Jack n Jill
Biscuit pcs Jack n Jill
Chex mix pcs natuurlijk
Cheez-it pcs natuurlijk
Biscuit pcs natuurlijk

Conclusie

De betekenis van die joins is erg belangrijk tijdens het werken in realtime scenario's en ook in sommige andere technologieën. In visualisaties zoals Tableau en Power BI spelen joins een cruciale rol. De gestructureerde praktijk hiervan is cruciaal om deze nieuwe technieken en vaardigheden in te bedden.

Aanbevolen artikel

Dit is een gids voor de Joins in MySQL. Hier bespreken we de top 6 soorten joins in MySQL zoals Inner, Left, Right, Full, Self, Cross en zijn voorbeelden, samen met Query en Output. u kunt ook onze voorgestelde artikelen doornemen voor meer informatie -

  1. Top 10 MySQL-opdrachten
  2. Inleiding tot MySQL-operators
  3. MySQL versus SQLite | Top 14 vergelijking
  4. Top 23 MySQL String-functies
  5. Uitleg Insert Command in MySQL met voorbeelden
  6. Top 6 Verschillen van primaire sleutel versus buitenlandse sleutel