VÄNSTER- och HÖGERKOPPLING
VÄNSTERKOPPLING
En LEFT JOIN, även kallad LEFT OUTER JOIN, är en typ av SQL-åtgärd som bevarar alla rader från tabellen till vänster (eller först) i frågan, oavsett om det finns en matchande rad i tabellen till höger (eller andra).
När en matchning hittas fylls kolumnerna från den högra tabellen med motsvarande värden. Men om det inte finns någon matchning innehåller resultatet null-värden i kolumnerna som kommer från den högra tabellen.
Den här kopplingen är användbar när du behöver skapa en omfattande lista från en tabell när du lägger till relaterade data från en annan, även om sådana relationer är ofullständiga eller frånvarande.
SELECT customers.customer_name, orders.order_id
FROM sales.customers AS customers
LEFT JOIN sales.orders AS orders ON customers.customer_id = orders.customer_id;
SQL-frågan med hjälp av en LEFT JOIN hämtar alla kunder från sales.customers tabellen, inklusive dem utan matchande beställningar i sales.orders tabellen.
ON Satsen anger att fältet customer_id länkar de två tabellerna.
För de kunder som har lagt beställningar visas order_id från tabellen orders. Men om en kund inte har några beställningar innehåller resultatet fortfarande kunden, där order_id kolumnen visar null-värden.
HÖGERKOPPLING
En RIGHT JOIN, även kallad RIGHT OUTER JOIN, är en SQL-åtgärd som säkerställer att alla rader från den högra (eller andra) tabellen inkluderas i resultatet, oavsett om det finns en matchande rad i tabellen till vänster (eller först).
I de fall där ingen matchning hittas visar kolumnerna från den vänstra tabellen null-värden.
Den här typen av koppling används ofta för att fokusera på data i den högra tabellen och samtidigt lägga till information från den vänstra tabellen där relationer finns.
SELECT customers.customer_name, orders.order_id
FROM sales.customers AS customers
RIGHT JOIN sales.orders AS orders ON customers.customer_id = orders.customer_id;
Den här frågan hämtar alla rader från sales.orders tabellen, vilket säkerställer att varje ordning ingår i resultatet, även om det inte finns någon associerad post i sales.customers tabellen.
Satsen ON anger relationen mellan de två tabellerna via customer_id kolumnen. Om en beställning har en motsvarande kund, fylls customer_name-kolumnen i med customer_name, och null-värden visas för omatchade poster.