Cosa c'è di sbagliato in questo semplice join esterno SQL?In che modo A un join esterno sinistro B restituisce più righe di quelle in A?
select count(*) from A -- 25766
select count(*) from B -- 1242
select count(*) from A left outer join B on A.b = B.b -- 310176
restituire rispettivamente 25766, 1242 e 310176 righe. (Questo è per Microsoft SQL Server 2012.) Come può A left outer join B
restituire sempre più righe di quelle esistenti in A
, in particolare con lo schema this Venn? Suppongo che sto facendo uno stupido errore ma che cos'è?
Può essere che la colonna b non è l'intera chiave? – Jens
+1 controllerò. Come potrebbe spiegare questo 310176? – Drux
Se b è solo la parte della chiave, può essere quella una riga in un riferimento molte più righe in B e se nel record di esempio 1 di Un riferimento 12,0 ... righe in B ottieni il risultato. – Jens