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 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
Tabel: bestellingen
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 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 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:
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 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:
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:
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:
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:
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: