Articles

SQL LEFT JOIN

samenvatting: in deze tutorial zullen we u een ander soort joins voorstellen, genaamd SQL LEFT JOIN, waarmee u gegevens uit meerdere tabellen kunt ophalen.

Inleiding tot SQL Left JOIN clausule

In de vorige tutorial, leerde u over de innerlijke join die rijen retourneert als er tenminste één rij in beide tabellen is die overeenkomt met de join voorwaarde. De inner join clausule elimineert de rijen die niet overeenkomen met een rij van de andere tabel.,

the left join geeft echter alle rijen uit de linker tabel terug, ongeacht of er een overeenkomende rij in de rechter tabel staat.

stel dat we twee tabellen A en B. de tabel A heeft vier rijen 1, 2, 3 en 4. De tabel B heeft ook vier rijen 3, 4, 5, 6.

wanneer we tabel A samenvoegen met Tabel B, worden alle rijen in Tabel A (de linker tabel) opgenomen in de resultatenreeks, ongeacht of er een overeenkomende rij in Tabel B is of niet.

In SQL gebruiken we de volgende syntaxis om Tabel A te verbinden met tabel B.,

de linker JOIN-clausule verschijnt na de uit-clausule. De voorwaarde die volgt op het sleutelwoord ON wordt de join-voorwaarde genoemd B.n = A.n

SQL LEFT JOIN examples

SQL LEFT JOIN two tables examples

laten we eens kijken naar de countries en locations tabellen.

elke locatie behoort tot één en slechts één land, terwijl elk land nul of meer locaties kan hebben., De relatie tussen de landen-en locatietabellen is één-op-veel.

de kolom country_id in de locations tabel is de buitenlandse sleutel die linkt naar de kolom country_id in de landen tabel.

om de landennamen van de VS, het VK en China te bevragen, gebruikt u de volgende verklaring.,0bc”>

in actie te Zien

de volgende query haalt De locaties zich in de VS, het verenigd koninkrijk en China:

in actie te Zien

we gebruiken Nu de LEFT JOIN-component te sluiten bij de landen tabel met de locaties tabel als de volgende query:

in actie te Zien

de voorwaarde van De WHERE-clausule wordt toegepast, zodat de verklaring alleen worden de gegevens opgehaald uit de VS, het verenigd koninkrijk, China en rijen.,

omdat we de left JOIN-clausule gebruiken, zijn alle rijen die voldoen aan de voorwaarde in de WHERE-clausule van de landentabel opgenomen in de resultatenreeks.

voor elke rij in de landen tabel, de linker JOIN clausule vindt de overeenkomende rijen in de locaties tabel.

indien ten minste één overeenkomende rij is gevonden, combineert de database-engine de gegevens uit kolommen van de overeenkomende rijen in beide tabellen.

indien er geen overeenkomende rij is gevonden, bijvoorbeeld met de land_id CN, wordt de rij in de landentabel opgenomen in de resultatenreeks en wordt de rij in de locatietabel gevuld met nulwaarden.,

omdat niet-overeenkomende rijen in de rechter tabel zijn gevuld met de NULL-waarden, kunt u de linker JOIN-clausule toepassen op miss-match rijen tussen tabellen.

bijvoorbeeld, om het land te vinden dat geen locaties heeft in de locations table, gebruikt u de volgende query:

zie het in actie

SQL Left join 3 tables voorbeeld

zie de volgende tabellen: regio ‘ s, landen en locaties.,

Eén regio kan nul of vele landen hebben terwijl elk land zich in de ene regio bevindt. De verhouding tussen landen en regio ‘ s is één-op-veel. De kolom region_id in de tabel landen is de link tussen de tabel landen en regio ‘ s.,

De volgende stelling laat zien hoe lid 3 tabellen: regio ‘ s, landen en locaties:

in actie te Zien

Nu moet je een goed inzicht van hoe de SQL-LEFT JOIN-component werkt en weet hoe de LEFT JOIN-component van een query gegevens uit meerdere tabellen.

  • Was deze tutorial nuttig ?
  • YesNo