En join er altid en inner join, det skal angives specifikt at det er en outer join ellers er det altid pr. default en inner join man laver. ordene left og right henviser til hvilken side af din join "matchene" findes, givet er følgende sql:
select bruger.fornavn, bog.titel from bruger left inner join bog on bruger.id = bog.forfatterid
ovenstående sql indeholder en left inner join (pr. default, jeg behøvede faktisk ikke skrive left inner). Det vil sige at jeg får alle de resultater hvor
venstre side har nogle id'er der matcher i højre side. På dansk vil det sige at jeg får alle de forfattere der har skrevet en bog, og INGEN null værdier, da
inner betyder at den kun tager de matches med der findes. Hvis sql'en derimod havde set således ud:
select bruger.fornavn, bog.titel from bruger left outer join bog on bruger.id = bog.forfatterid
ville jeg også have fået alle de brugere der ikke havde udgivet en bog, da jeg så også ville få null værdier med.
Giver det mening?
(¯`·._.·[Brian Hvarregaard]·._.·´¯)
"All my base are belong to you"