MySQL LEFT JOIN (Svenska)

sammanfattning: i den här handledningen kommer du att lära dig om MySQL LEFT JOIN – klausulen och hur man applicerar den för att fråga data från två eller flera tabeller.

introduktion till MySQL LEFT JOIN

LEFT JOIN låter dig fråga data från två eller flera tabeller. I likhet medINNER JOIN – klausulen ärLEFT JOIN en valfri klausul iSELECT – satsen, som visas omedelbart efterFROM – klausulen.,

Antag att du vill ansluta till två tabellert1 ocht2.

följande uttalande visar hur du använder klausulenLEFT JOIN för att ansluta till de två tabellerna:

Code language: SQL (Structured Query Language) (sql)

När du använder klausulen LEFT JOIN introduceras begreppen i den vänstra tabellen och den högra tabellen.

i ovanstående syntax ärt1 den vänstra tabellen ocht2 den högra tabellen.,

klausulenLEFT JOIN väljer data från den vänstra tabellen (t1). Den matchar varje rad från den vänstra tabellen (t1) med varje rad från den högra tabellen (t2) baserat påjoin_condition.

om raderna från båda tabellerna orsakar att kopplingsförhållandet utvärderas till TRUE, kombinerar LEFT JOIN kolumner med rader från båda tabellerna till en ny rad och innehåller den nya raden i resultatraderna.,

om raden från den vänstra tabellen (t1) inte matchar någon rad från den högra tabellen (t2),LEFT JOIN kombinerar fortfarande kolumner av rader från båda tabellerna i en ny rad och inkluderar den nya raden i resultatraderna. Den använder dockNULL för alla kolumner i raden från den högra tabellen.

med andra ord returnerarLEFT JOIN alla rader från den vänstra tabellen oavsett om en rad från den vänstra tabellen har en matchande rad från den högra tabellen eller inte., Om det inte finns någon matchning kommer kolumnerna i raden från den högra tabellen att innehålla NULL.

följande Venn – diagram hjälper dig att visualisera hurLEFT JOIN – klausulen fungerar:

MySQL LEFT JOIN-Venn Diagram

MySQL Left join exempel

låt oss ta några exempel på att användaLEFT JOIN – klausulen.,

1) Använda MySQL LEFT JOIN-klausulen för att ansluta till två tabeller

se följande tabellercustomers ochorders I provdatabasen.

varje kund kan ha noll eller fler beställningar medan varje order måste tillhöra en kund.,

den här frågan använder klausulen LEFT JOIN för att hitta alla kunder och deras order:

Code language: SQL (Structured Query Language) (sql)

Alternativt kan du spara Vissa skrivningar med hjälp av tabellalias:

Code language: SQL (Structured Query Language) (sql)

i det här exemplet:

  • customers är den vänstra tabellen och orders är den högra tabellen.
  • klausulenLEFT JOIN returnerar alla kunder inklusive kunder som inte har någon beställning., Om en kund inte har någon order är värdena i kolumnen orderNumber och status NULL.,

eftersom både tabellkunder och beställningar har samma kolumnnamn ( customerNumber) I kopplingsförhållandet med Equal-operatören kan du använda syntaxen enligt följande:

Code language: SQL (Structured Query Language) (sql)

följande klausuler är likvärdiga:

Code language: SQL (Structured Query Language) (sql)

och

Code language: SQL (Structured Query Language) (sql)

om du ersätter klausulen LEFT JOIN med klausulen INNER JOIN får du de enda kunder som har minst en order.,

2) använda MySQL LEFT JOIN-klausulen för att hitta oöverträffade rader

LEFT JOIN – klausulen är mycket användbar när du vill hitta rader i en tabell som inte har en matchande rad från en annan tabell.,”>

för att hitta kunder som inte har någon order:

Code language: SQL (Structured Query Language) (sql)

3) använda MySQL LEFT JOIN för att gå med i tre tabeller

se följande tre tabeller employees, customers, och payments:

det här exemplet använder två LEFT JOIN klausuler för att gå med i de tre tabellerna: employees, customers och payments.,

Code language: SQL (Structured Query Language) (sql)

den här bilden visar den partiella utmatningen:

hur det fungerar.

  • den förstaLEFT JOIN returnerar alla anställda och kunder som representerade varje anställd ellerNULL om den anställde inte ansvarar för någon kund.
  • den andraLEFT JOIN returnerar betalningar för varje kund som representeras av en anställd ellerNULL om kunden inte har någon betalning.

villkor i where klausul vs., På klausul

se följande exempel.

Code language: SQL (Structured Query Language) (sql)

det här exemplet använde klausulenLEFT JOIN för att fråga data från tabellernaorders ochorderDetails. Frågan returnerar ordern och dess radposter i ordernumret 10123.,

om du flyttar villkoret från klausulen WHERE till klausulen ON:

Code language: SQL (Structured Query Language) (sql)

det kommer att ha en annan betydelse.,

i det här fallet returnerar frågan alla beställningar men bara ordern10123 kommer att ha linjeobjekt associerade med den som i följande bild:

Observera att förINNER JOIN – klausulen, villkoret iON – klausulen motsvarar villkoret iWHERE – klausulen.

i den här handledningen har du lärt dig hur du använder MySQL LEFT JOIN – klausulen för att gå med i data från två eller flera tabeller.,

  • var den här handledningen till hjälp?
  • YesNo

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *