SQL LEFT JOIN (Svenska)
sammanfattning: i den här handledningen presenterar vi dig en annan typ av kopplingar som heter SQL LEFT JOIN som låter dig hämta data från flera tabeller.
introduktion till SQL LEFT JOIN clause
i föregående handledning lärde du dig om den inre kopplingen som returnerar rader om det finns minst en rad i båda tabellerna som matchar kopplingsförhållandet. Den inre kopplingsklausulen eliminerar de rader som inte matchar med en rad i den andra tabellen.,
vänster koppling returnerar dock alla rader från den vänstra tabellen oavsett om det finns en matchande rad i den högra tabellen eller inte.
Antag att vi har två tabeller A och B. tabellen A har fyra rader 1, 2, 3 och 4. Tabell B har också fyra rader 3, 4, 5, 6.
När vi går med i tabell A med Tabell B inkluderas alla rader i tabell A (den vänstra tabellen) i resultatuppsättningen om det finns en matchande rad i tabell B eller inte.
i SQL använder vi följande syntax för att gå med i tabell A med tabell B.,
den vänstra KOPPLINGSKLAUSULEN visas efter från-klausulen. Villkoret som följer på nyckelordet kallas join condition B.n = A.n
SQL LEFT JOIN examples
SQL LEFT JOIN two tables examples
Låt oss ta en titt på countries
och locations
tabeller.
varje plats tillhör ett och bara ett land medan varje land kan ha noll eller flera platser., Förhållandet mellan länder och platser tabeller är en-till-många.
kolumnen country_id i tabellen platser är den främmande nyckel som länkar till kolumnen country_id i tabellen länder.
för att fråga landnamnen på USA, Storbritannien och Kina använder du följande uttalande.,
se det i handling
följande fråga hämtar platserna i USA, Storbritannien och Kina:
se det i aktion
nu använder vi vänster join-klausulen för att gå med i Ländertabellen med placeringstabellen som följande fråga:
se den i åtgärd
villkoret i where-klausulen tillämpas så att uttalandet bara hämtar data från USA, Storbritannien och Kina-raderna.,
eftersom vi använder vänster JOIN-klausul inkluderas alla rader som uppfyller villkoret i where-klausulen i ländertabellen i resultatuppsättningen.
för varje rad i ländertabellen hittar den vänstra KOPPLINGSKLAUSULEN matchande rader i placeringstabellen.
om minst en matchande rad hittas kombinerar databasmotorn data från kolumner i matchande rader i båda tabellerna.
om det inte finns någon matchande rad, t.ex. med country_id CN, inkluderas raden i ländertabellen i resultatuppsättningen och raden i placeringstabellen fylls med NULL-värden.,
eftersom rader som inte matchar i den högra tabellen är fyllda med NULL-värdena kan du använda VÄNSTERKOPPLINGSKLAUSULEN för att matcha rader mellan tabeller.
för att till exempel hitta det land som inte har några platser i tabellen platser använder du följande fråga:
se det i åtgärd
SQL LEFT JOIN 3 exempel på tabeller
se följande tabeller: regioner, länder och platser.,
en region kan ha noll eller många länder medan varje land ligger i en region. Förhållandet mellan länder och regioner tabeller är en-till-många. Kolumnen region_id i tabellen länder är länken mellan tabellen länder och regioner.,
följande uttalande visar hur man går med i 3 tabeller: regioner, länder och platser:
se det i åtgärd
nu bör du ha en god förståelse för hur SQL LEFT JOIN-klausulen fungerar och vet hur man tillämpar Left JOIN-klausulen för att söka data från flera tabeller. – herr talman!
- var den här handledningen till hjälp ?
- YesNo