logo

MySQL LINKS JOIN

De Left Join in MySQL wordt gebruikt om records uit meerdere tabellen op te vragen. Deze clausule is vergelijkbaar met de Inner Join-clausule die kan worden gebruikt met een SELECT-instructie direct na het FROM-sleutelwoord. Wanneer we de Left Join-clausule gebruiken, worden alle records uit de eerste (linker) tabel geretourneerd, zelfs als er geen overeenkomende records uit de tweede (rechter) tabel zijn gevonden. Als er geen overeenkomstenrecord uit de tabel aan de rechterkant wordt gevonden, wordt null geretourneerd.

Met andere woorden: de Left Join-clausule retourneert alle rijen uit de linkertabel en overeenkomende records uit de rechtertabel, of retourneert Null als er geen overeenkomende record wordt gevonden. Deze Join kan ook een Linker buitenste verbinding clausule. Outer is dus het optionele trefwoord dat u met Left Join kunt gebruiken.

kaarten Java

We kunnen dit begrijpen met de volgende visuele weergave waarbij Left Joins alle records uit de linkertabel retourneert en alleen de overeenkomende records uit de rechtertabel:

MySQL LINKS JOIN

MySQL LEFT JOIN-syntaxis

In de volgende syntaxis wordt de Left Join-clausule uitgelegd om de twee of meer tabellen samen te voegen:

 SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition; 

In de bovenstaande syntaxis, tafel 1 is de linkertabel, en tafel 2 is de rechtertabel. Deze clausule retourneert alle records uit tabel1 en overeenkomende records uit tabel2 op basis van de opgegeven waarden voorwaarde aansluiten .

MySQL LEFT JOIN-voorbeeld

Laten we enkele voorbeelden nemen om de werking van de Left Join- of Left Outer Join-clausule te begrijpen:

LEFT JOIN-clausule voor het samenvoegen van twee tabellen

Hier gaan we twee tabellen maken ' klanten' En ' bestellingen' die de volgende gegevens bevat:

Tabel: klanten

MySQL LINKS JOIN

Tabel: bestellingen

MySQL LINKS JOIN

Om records uit beide tabellen te selecteren, voert u de volgende query uit:

 SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id; 

Na succesvolle uitvoering van de query geeft deze de volgende uitvoer:

sorteeralgoritmen voegen sortering samen
MySQL LINKS JOIN

MySQL LEFT JOIN met USING-clausule

De tabel klanten en bestellingen hebben dezelfde kolomnaam, namelijk customer_id. In dat geval kan MySQL Left Join ook worden gebruikt met de USING-clausule om toegang te krijgen tot de records. De volgende verklaring retourneert klant-ID, klantnaam, beroep, prijs en datum met behulp van de Left Join-clausule met het sleutelwoord USING.

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id); 

De bovenstaande verklaring geeft de volgende uitvoer:

MySQL LINKS JOIN

MySQL LINKS JOIN met Groeperen op clausule

De Left Join kan ook worden gebruikt met de GROUP BY-clausule. De volgende instructie retourneert klant-ID, klantnaam, kwalificatie, prijs en datum met behulp van de Left Join-clausule met de GROUP BY-clausule.

 SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price; 

De bovenstaande verklaring geeft de volgende uitvoer:

MySQL LINKS JOIN

LINKS JOIN met WHERE-clausule

De WHERE-clausule wordt gebruikt om het filter resultaat uit de tabel. Het volgende voorbeeld illustreert dit met de Left Join-clausule:

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500; 

Deze verklaring geeft het onderstaande resultaat:

Java-lijst van
MySQL LINKS JOIN

MySQL LEFT JOIN Meerdere tabellen

We hebben al twee tabellen gemaakt met de naam ' klanten' En ' bestellingen' . Laten we nog een tabel maken en deze noemen als ' contacten' die de volgende gegevens bevat:

MySQL LINKS JOIN

Voer de volgende instructie uit om de drie tafelklanten, bestellingen en contactpersonen samen te voegen:

 SELECT customers.customer_id, cust_name, order_id, price, cellphone FROM customers LEFT JOIN contacts ON customer_id = contact_id LEFT JOIN orders ON customers.customer_id = orders.customer_id ORDER BY income; 

Na succesvolle uitvoering van de bovenstaande query zal het de volgende uitvoer opleveren:

MySQL LINKS JOIN

Gebruik van de LEFT JOIN-clausule om ongeëvenaarde records te verkrijgen

De LEFT JOIN-clausule is in zo'n geval ook handig als we records in de tabel willen ophalen die geen overeenkomende rijen met gegevens uit een andere tabel bevatten.

We kunnen dit begrijpen met het volgende voorbeeld waarin de LEFT JOIN-clausule wordt gebruikt om een ​​klant te vinden die geen mobiel nummer heeft:

 SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ; 

De bovenstaande instructie retourneert de volgende uitvoer:

MySQL LINKS JOIN

Verschil tussen WHERE- en ON-clausule in MySQL LEFT JOIN

In de LEFT Join geven de voorwaarden WHERE en ON een ander resultaat. We kunnen de volgende zoekopdrachten zien om de verschillen te begrijpen:

WAAR clausule

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500; 

Het geeft de volgende uitvoer die terugkeert:

MySQL LINKS JOIN

ON-clausule

reeks van int
 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500; 

Het geeft de volgende uitvoer:

MySQL LINKS JOIN

OPMERKING: De WHERE- en ON-voorwaarde in de Inner Join-clausule retourneert altijd gelijkwaardige resultaten.