Domanda

Se un Inner Join può essere pensato come un incrocio si uniscono e quindi ottenere i record che soddisfano la condizione, poi un LEFT OUTER JOIN può essere pensato come quella, più un record sulla tabella di sinistra che non soddisfa la condizione.

In altre parole, non è un cross join che "va facile" sui registri di sinistra (anche se la condizione non è soddisfatta), perché allora il record di sinistra può apparire più volte (come tante volte quanti sono i record in la tabella di destra).

Quindi la LEFT OUTER JOIN è il cross join con i record che soddisfano la condizione, oltre a un record da sinistra TABLE che non soddisfa la condizione?

È stato utile?

Soluzione

Non credo sia corretto dire un join esterno sinistro è:. "La Croce si uniscono con i record satsifying la condizione e un record per la tabella di sinistra che non satisy la condizione"

Un inner join senza una condizione è la stessa come una croce join. Un join interno sulla x è lo stesso come un incrocio dove si uniscono x. Ma preferisco il primo in quanto è più esplicito e più difficile da sbagliare.

Tuttavia, con un outer join non sempre ottiene la riga "che non soddisfa la condizione". La differenza tra un join esterno sinistro e join interno è:

  • join interno:. Se la condizione di join per una riga nella tabella a sinistra non riesce per ogni riga della tabella di destra, non si ottiene quella riga
  • Join esterno:. Se la condizione di join per una riga nella tabella a sinistra non riesce per ogni riga della tabella di destra, si ottiene la riga dalla tabella di sinistra con i NULL per le colonne della tabella di destra

Non si ottiene entrambe le righe che partita e una riga che non - si sia ottenere la prima o la seconda situazione. La sua dichiarazione sembra suggerire che è possibile ottenere entrambe le cose.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top