Ho un LIVELLO ESTERNO SINISTRO molto semplice per restituire tutti i risultati dalla tabella sinistra e alcune informazioni aggiuntive da una tabella molto più grande. La tabella di sinistra contiene 4935 record ancora quando I LEFT OUTER UNISCONO a una tabella aggiuntiva il numero di record è significativamente più grande.Come può un LEFT OUTER JOIN restituire più record di quelli esistenti nella tabella sinistra?
Per quanto ne so, è un vangelo assoluto che un LEFT OUTER JOIN restituirà tutti i record dalla tabella sinistra con i record corrispondenti dalla tabella di destra e valori null per tutte le righe che non possono essere abbinate, in quanto tale è il mio capendo che dovrebbe essere impossibile restituire più file di quante ne esistano nella tabella sinistra, ma sta succedendo lo stesso!
SQL Query 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 commesso un errore nella sintassi o la mia comprensione di LEFT OUTER JOIN è incompleta, qualunque sia la ragione per cui sto impazzendo qui, si spera che qualcuno può spiegare come questo potrebbe essere in corso?
Postscript
Grazie per le risposte Grea, la mia comprensione di SINISTRA outer join è ora molto meglio, qualcuno però potrebbe suggerire un modo in cui questa domanda potrebbe essere modificata in modo che io ho soltanto il maggior numero di record restituiti come esistono nel tavolo sinistro?
Questa query è puramente per generare un report e le corrispondenze duplicate semplicemente confondono le cose.
/Postscript
Per "ottenere il numero di record restituito esistente nella tabella sinistra", è necessario specificare quale riga dal lato destro a scegli se ci sono più corrispondenze. –
come lo si specifica? Mi piacerebbe che la prima partita fosse restituita. –
devi definire cosa si intende per prima corrispondenza. Vuoi la primissima registrazione, quella con l'id più alto o cosa? – HLGEM