Salve a tutti.
La differenza tra inner join e left join, oltre che nella struttura della query, è solo che left join genera NULL in un campo quando non si presenta una condizione, mentre l'inner join non restituisce nulla?
Salve a tutti.
La differenza tra inner join e left join, oltre che nella struttura della query, è solo che left join genera NULL in un campo quando non si presenta una condizione, mentre l'inner join non restituisce nulla?
Inner join e' una equi-join, cioe' associa e presenta solo campi con valori uguali di due tabelle.Originariamente inviato da Diego_vl
Salve a tutti.
La differenza tra inner join e left join, oltre che nella struttura della query, è solo che left join genera NULL in un campo quando non si presenta una condizione, mentre l'inner join non restituisce nulla?
LEFT join associa TUTTI i campi della tabella che si trova a SX delle dichiarazioni con i campi che corrispondono nella tabella di DX. Se il valore della tab a DX non esiste rendera' un NULL. Succede l'esatto contrario con RIGHT join
qual'e' la DX e la SX?
vedi l'ordine dell'elenco:
FROM tab_a left join tab_b ON tab_a.id = tab_b.id
tab_a e' a sx... il primo che trovi, tab_b e' a dx della dichiarazione. In sostanza: vengono presi TUTTI i record di tab_a e confrontati con tutti i record id della tab_b. se c'e' corrispondenza bene, altrimenti tab_b rende NULL.
RIGHT join invece avrebbe preso TUTTI i record di tab_b e chi renderebbe un eventuale NULL sarebbe la tab_a.
direi che la differenza e' sostanziale.
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.