ISCRIVITI vs INNER JOIN e FULL OUTER JOIN


27

So che c'è una differenza tra INNER JOINe FULL OUTER JOIN, posso vederlo, ma qual è la differenza tra i due seguenti: JOIN ... ON...e INNER JOIN...ON...e ancora JOIN...ON...vsFULL OUTER JOIN...ON...

Il motivo è che penso che forse solo usando JOINsia incasinato una query su cui sto lavorando che è pubblicata su SO, collegamento alla domanda QUI.

Quindi, in sostanza, qual è la differenza sintattica tra le stesse operazioni sul set?

Grazie,


1
"Cross posting" sta pubblicando la stessa domanda in forum diversi. Pubblicare un link è ok e desiderabile.
Choroba,

Ok, posterò un link alla domanda, il mio codice è restituire molti duplicati e mi sta facendo impazzire ... Non ho ancora avuto il mio caffè mattutino lol
MCP_infiltrator

4
@MCP_infiltrator dare un'occhiata probabilmente la migliore spiegazione là fuori: codinghorror.com/blog/2007/10/...
MKK

Se il vero problema è che il tuo codice sta restituendo troppi duplicati, ti consigliamo di porre un'altra domanda su quale sia il punto principale. E potresti voler pubblicare il tuo codice. Quando in passato ho aiutato persone con problemi duplicati, di solito è dovuto a condizioni di join errate o, occasionalmente, a una carente mappatura tra il modello dati SQL e il modello dati relazionale.
Walter Mitty,

Ciao @WalterMitty la domanda è pubblicata in SO, penso che il mio problema sia il mio join, ma in un'altra nota ero anche solo curioso, sono solo circa 6 mesi a scrivere SQL e autoapprendimento, il link è nella domanda.
MCP_infiltrator

Risposte:


33

JOINe INNER JOINsono uguali, la parola chiave interna è facoltativa poiché tutti i join sono considerati come join interni se non diversamente specificato. La differenza tra JOINe FULL OUTER JOINè uguale alla differenza tra INNER JOINe FULL OUTER JOIN.

An INNER JOINrestituirà le righe corrispondenti solo se una riga nella tabella A corrisponde a più righe nella tabella B la tabella Una riga verrà ripetuta con ogni riga della tabella B e viceversa.

A FULL OUTER JOINrestituirà tutto ciò che fa un join interno e restituirà tutte le righe non corrispondenti da ciascuna tabella.


5
Grazie, non lo sapevo JOINed INNER JOINerano dichiarazioni equivalenti.
MCP_infiltrator

7
La migliore pratica è scrivere esplicitamente INNER JOIN per evitare confusione.
Neil,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.