Skillnaden mellan Inner Join och Outer Join

Skillnaden mellan Inner Join och Outer Join
Skillnaden mellan Inner Join och Outer Join

Video: Skillnaden mellan Inner Join och Outer Join

Video: Skillnaden mellan Inner Join och Outer Join
Video: Naprapatens övningar för ländryggen – blir av med stelhet och smärta - Nyhetsmorgon (TV4) 2024, December
Anonim

Inner Join vs Outer Join

Inner join och Outer join är två av SQL-sammanfogningsmetoderna som används vid frågebehandling för databaser. De tillhör familjen av join-klausuler (de andra två är Left och Right Joins). Det finns dock en Self Join som kan användas för speciella situationer. Syftet med Join är att kombinera fält med de gemensamma värdena till de två tabellerna. Dessa kopplingar kombinerar poster från flera tabeller i en databas. Den skapar resulterande uppsättningar som kan sparas som en annan tabell.

Vad är Inner Join?

Den vanligaste SQL Join-operationen är Inner Join. Det kan betraktas som standardtypen av anslutning som används i applikationer. Inner join använd join-predikatet för att kombinera två tabeller. Om vi antar att de två tabellerna är A och B, kommer join-predikatet att jämföra rader av A och B för att ta reda på alla par som uppfyller predikatet. Kolumnvärden för alla nöjda rader av A- och B-tabeller kombineras för att skapa resultatet. Det kan ses som att man först tar cross join (kartesisk produkt) för alla poster och sedan returnerar endast de poster som uppfyller join-predikatet. Men i verkligheten är kartesisk produkt inte beräknad eftersom den är mycket ineffektiv. Hash join eller sort-merge join används istället.

Vad är Outer Join?

Till skillnad från Inner join, yttre join behåller alla uppgifter även om den inte kan hitta en matchande post. Det betyder att yttre sammanfogning behöver en post för att hitta en matchande post för att den ska visas i resultatet. Istället kommer det att returnera alla poster, men omatchade poster kommer att ha nollvärden. Yttre sammanfogningar är indelade i tre underkategorier. De är vänster yttre sammanfogning, höger yttre sammanfogning och fullständig yttre sammanfogning. Denna differentiering baseras på vilken tabells rad (vänster tabell, höger tabell eller båda tabellerna) som behålls när omatchade poster hittas. Vänster yttre kopplingar (även känd som helt enkelt vänster koppling) behåller alla poster i den vänstra tabellen. Det betyder att även om antalet matchande poster är noll, kommer det fortfarande att ha poster i resultattabellen, men kommer att ha nollvärden för alla kolumner i B. Med andra ord, alla värden från vänster tabell returneras med matchade värden från höger tabell (eller nollvärden när de inte matchas). Om värden från flera rader från vänster tabell matchas med en enda rad från höger tabell, kommer raden från höger tabell att upprepas vid behov. Höger yttre sammanfogning påminner ganska mycket om vänster yttre sammanfogning, men behandlingen av tabeller är vördad. Det betyder att resultatet kommer att ha alla rader i höger tabell minst en gång med matchade vänstra tabellvärden (och nullvärden för omatchade högervärden). Full ytterskarv är mer omfattande än både vänster och höger ytterskarv. Det resulterar i att man kombinerar effekten av att applicera både vänster och höger yttre sammanfogade.

Vad är skillnaden mellan Inner Join och Outer Join?

Inner Join behåller inte de omatchade raderna i resultatet, men yttre koppling kommer att behålla alla poster från minst en tabell (beroende på vilken yttre koppling som har använts). Så beteendet att inte ha någon information närvarande på omatchade rader i resultattabellen är oönskat, du måste alltid använda en av de yttre kopplingarna (i stället för den inre kopplingen). Inner join kanske inte ger ett resultat om inga matchningar hittas. Men yttre sammanfogning kommer alltid att producera en resulterande tabell, även utan matchande rader. Inner join kommer alltid att returnera tabeller med värden (om de returneras). Men yttre kopplingar kan resultera i tabeller med nollvärden.

Rekommenderad: