sql >> Database teknologi >  >> RDS >> Database

Forskellen mellem indre join og ydre join i SQL

Indre join og outer join er to nyttige måder at forbinde databasetabeller og forespørge data fra flere tabeller på. I denne artikel vil vi se på forskellen mellem indre joinforbindelse og ydre joinforbindelse i SQL.


Indre deltagelse

Inner join returnerer rækker fra to eller flere tabeller, hvor mindst én kolonne har samme værdi i alle tabellerne. Hvis der ikke er nogen fælles værdier, returneres ingen rækker.

Her er syntaksen for indre sammenføjning:

select *  from table1 INNER JOIN table2 
on table1.column_name = table2.column_name;

OR

select * from table1 JOIN table2 
on table1.column_name = table2.column_name;


Outer Join

Outer join returnerer rækker fra to eller flere tabeller, hvor mindst én kolonne har fælles værdi, samt rækker, hvor join-betingelsen mislykkes. Der er 3 typer ydre sammenføjninger:


Venstre ydre forbindelse

I dette tilfælde bibeholdes alle rækker af venstre tabel i resultatet, i tilfælde af at dens sammenføjningsbetingelser matcher andre tabeller, returneres deres kolonneværdier, ellers returneres nulværdier for disse kolonner. Her er syntaksen for venstre ydre sammenføjning.

select * from table1 
LEFT OUTER JOIN table2 
on table1.column_name = table2.column_name;


Højre ydre samling

I dette tilfælde bibeholdes alle rækker i højre tabel i resultatet, i tilfælde af at dens sammenføjningsbetingelser matcher andre tabeller, returneres deres kolonneværdier, ellers returneres nulværdier for disse kolonner.

Her er syntaksen for højre ydre sammenføjning

select * from table1 
RIGHT OUTER JOIN table2 
on table1.column_name = table2.column_name;


Fuld ydre forbindelse

I dette tilfælde returneres alle rækker i begge tabeller. Hvis sammenføjningsbetingelsen er opfyldt, udfyldes kolonner ved hjælp af værdierne for begge tabeller. Hvis join-betingelsen mislykkes, udfyldes værdierne for en af ​​tabellerne i kolonner, og resten udfyldes som nuller.


Forskel mellem indre joinforbindelse og ydre joinforbindelse i SQL

Her er de vigtigste forskelle mellem indre sammenføjning vs ydre sammenføjning.

Indre deltagelse

  • Det returnerer kun rækker med almindelige kolonneværdier.
  • Du kan bruge INNER JOIN- eller JOIN-klausulen. Begge har samme effekt
  • Det returnerer null, når der ikke er matchende kolonneværdier mellem to (eller flere) tabeller
  • Inner Join er hurtigere end Outer Join
  • Det er nyttigt at lave opslag på tværs af flere tabeller
  • I matematiske termer returnerer det skæringspunktet mellem to sæt (tabeller)


Outer Join

  • Det returnerer værdier fra en eller flere tabeller, selvom der ikke er nogen matchende kolonneværdier
  • For rækker uden matchende attributter returnerer det null for resterende kolonner
  • Fuld Outer Join og Full Join har samme effekt.
  • Det er langsommere end indre sammenføjning
  • Det bruges til at få fuldstændig information i to eller flere tabeller
  • Fuld ydre joinforbindelse er ikke understøttet i MySQL. Den er tilgængelig i PostgreSQL, SQL Server, Oracle og andre populære databaser.


Har du brug for et rapporteringsværktøj til MySQL? Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. Delvis indeks bruges ikke i ON CONFLICT-klausulen, mens du udfører en upsert i Postgresql

  2. Værdier vises ikke med indledende nul i oracle

  3. Hvordan konverteres 1985-02-07T00:00:00.000Z (ISO8601) til en datoværdi i Oracle?

  4. Hvordan krypteres adgangskoden i Oracle?