Ho un JOIN ESTERNO SINISTRA molto semplice per restituire tutti i risultati dalla tabella di sinistra e alcune informazioni aggiuntive da una tabella molto più grande. La tabella di sinistra contiene 4935 record ma quando ho lasciato ESTERNO UNISCITI a una tabella aggiuntiva il conteggio dei record è significativamente maggiore.
Per quanto ne so, è assolutamente vangelo che un JOIN ESTERNO SINISTRO restituirà tutti i record della tabella di sinistra con i record corrispondenti della tabella di destra e valori nulli per tutte le righe che non possono essere abbinate, in quanto tale intendo che dovrebbe essere impossibile restituire più righe di quelle esistenti nella tabella di sinistra, ma sta succedendo lo stesso!
Query SQL segue:
SELECT SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID
FROM SUSP.Susp_Visits LEFT OUTER JOIN
DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum
Forse ho fatto un errore nella sintassi o la mia comprensione di LEFT OUTER JOIN è incompleta, si spera che qualcuno possa spiegare come ciò potrebbe accadere?
poscritto
Grazie per le ottime risposte, la mia comprensione di LEFT OUTER JOINS è ora molto migliore, qualcuno potrebbe comunque suggerire un modo in cui questa query potrebbe essere modificata in modo da ottenere solo quanti record restituiti esistono nella tabella a sinistra?
Questa query serve esclusivamente a generare un rapporto e le corrispondenze duplicate confondono semplicemente le cose.
/ Postscript