samenvatting: in deze tutorial leert u over MySQL LEFT JOIN
– clausule en hoe u deze kunt toepassen op query-gegevens uit twee of meer tabellen.
Inleiding tot MySQL Left JOIN
met LEFT JOIN
kunt u gegevens opvragen uit twee of meer tabellen. Gelijkaardig aan de INNER JOIN
clausule, is de LEFT JOIN
een optionele clausule van de SELECT
verklaring, die onmiddellijk na de FROM
clausule verschijnt.,
stel dat u twee tabellen wilt samenvoegen t1
en t2
.
de volgende instructie laat zien hoe deLEFT JOIN
clausule gebruikt om de twee tabellen samen te voegen:
Code language: SQL (Structured Query Language) (sql)
wanneer u deLEFT JOIN
clausule gebruikt, worden de concepten van de linker tabel en de rechter tabel geïntroduceerd.
in de bovenstaande syntaxis is t1
de linker tabel en t2
de rechter tabel.,
deLEFT JOIN
clausule selecteert gegevens vanaf de linker tabel (t1
). Het komt overeen met elke rij van de linker tabel (t1
) met elke rij van de rechter tabel(t2
) gebaseerd op de join_condition
.
als de rijen uit beide tabellen ervoor zorgen dat de join-voorwaarde evalueert naar TRUE
, combineert de LEFT JOIN
kolommen met rijen uit beide tabellen naar een nieuwe rij en bevat deze nieuwe rij in de resultaatrijen.,
indien de rij uit de linker tabel (t1
) niet overeenkomt met een rij uit de rechter tabel (t2
), combineert de LEFT JOIN
nog steeds kolommen van rijen uit beide tabellen in een nieuwe rij en neemt de nieuwe rij op in de resultaatrijen. Het gebruikt echter NULL
voor alle kolommen van de rij van de rechter tabel.
met andere woorden, LEFT JOIN
geeft alle rijen van de linker tabel terug, ongeacht of een rij van de linker tabel een overeenkomende rij van de rechter tabel heeft of niet., Als er geen overeenkomst is, zullen de kolommen van de rij in de juiste tabel NULL
bevatten.
De volgende Venn diagram helpt je te visualiseren hoe de LEFT JOIN
component werkt:
MySQL-LEFT JOIN voorbeelden
Laten we eens een aantal voorbeelden van het gebruik van de LEFT JOIN
component.,
1) met behulp van de MySQL Left JOIN-clausule om twee tabellen samen te voegen
zie de volgende tabellen customers
en orders
in de voorbeelddatabase.
elke klant kan nul of meer orders hebben terwijl elke bestelling aan één klant moet toebehoren.,
Deze query gebruikt de LEFT JOIN
component te vinden van alle klanten en hun bestellingen:
Code language: SQL (Structured Query Language) (sql)
u kunt Ook opslaan sommige typen met behulp van tabel aliassen:
Code language: SQL (Structured Query Language) (sql)
In dit voorbeeld:
- De
customers
– de linker tabel-enorders
de juiste tabel. - de
LEFT JOIN
clausule geeft alle klanten terug, inclusief de klanten die geen bestelling hebben., Indien een klant geen bestelling heeft, zijn de waarden in de kolomorderNumber
enstatus
NULL
.,
omdat zowel tabelklanten als orders dezelfde kolomnaam hebben ( customerNumber
) in de join-voorwaarde met de equal-operator, kunt u de gebruikende syntaxis als volgt gebruiken:
Code language: SQL (Structured Query Language) (sql)
de volgende clausules zijn gelijkwaardig:
Code language: SQL (Structured Query Language) (sql)
en
Code language: SQL (Structured Query Language) (sql)
Als u de LEFT JOIN
clausule vervangt door de INNER JOIN
clausule, krijgt u de enige klanten die minstens één bestelling hebben.,
2) MySQL LEFT JOIN-clausule gebruiken om ongeëvenaarde rijen te vinden
de LEFT JOIN
– clausule is erg handig als u rijen wilt vinden in een tabel die geen overeenkomende rij uit een andere tabel heeft.,”> om klanten te vinden die geen volgorde:
Code language: SQL (Structured Query Language) (sql)
3) Met behulp van MySQL-LEFT JOIN naar join in drie tabellen
Zie de volgende drie tabellen employees
, customers
, en payments
:
in Dit voorbeeld wordt met twee LEFT JOIN
clausules te sluiten bij de drie tabellen: employees
, customers
, en payments
.,
Code language: SQL (Structured Query Language) (sql)
deze afbeelding toont de gedeeltelijke uitvoer:
Hoe werkt het?
- De eerste
LEFT JOIN
geeft alle werknemers en klanten terug die elke werknemer vertegenwoordigden ofNULL
indien de werknemer niet verantwoordelijk is voor een klant. - de tweede
LEFT JOIN
retourneert betalingen van elke klant vertegenwoordigd door een werknemer ofNULL
indien de klant geen betaling heeft.
voorwaarde waarin clausule vs., Bij clausule
zie het volgende voorbeeld.
Code language: SQL (Structured Query Language) (sql)
dit voorbeeld gebruikte de LEFT JOIN
clausule om gegevens uit de tabellen te bevragen orders
en orderDetails
. De query retourneert de bestelling en de regelitems van het ordernummer 10123
.,
Echter, als u de toestand van de WHERE
component aan het ON
clausule:
Code language: SQL (Structured Query Language) (sql)
Het zal een andere betekenis.,
In dit geval retourneert de query alle orders, maar alleen de volgorde 10123
zal regelitems in verband met het als in het volgende plaatje:
Merk op dat je voor INNER JOIN
component, de toestand in de ON
component is gelijk aan de toestand in de WHERE
component.
in deze tutorial hebt u geleerd hoe u de MySQL LEFT JOIN
clausule kunt gebruiken om gegevens uit twee of meer tabellen samen te voegen.,
- Was deze tutorial nuttig?
- YesNo