1. Hensikten med kurset - Lars Marius Garshol
1. Hensikten med kurset - Lars Marius Garshol
1. Hensikten med kurset - Lars Marius Garshol
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Innføring i databaser<br />
Dersom du vil forestille deg hvordan dette fungerer kan du tenke deg at datamaskinen først<br />
setter opp alle mulige kombinasjoner av 1 post fra T_Person og 1 fra T_Bil. Deretter plukker<br />
den ut de der T_Person.ID er lik T_Bil.Eier, før den sorterer de som er igjen på<br />
T_Person.Navn og viser det hele.<br />
Figur 7.4<br />
Resultatet vises i Figur 7.4. Som du ser dukker samme person opp flere ganger dersom<br />
han/hun har flere biler. Det er selvsagt ikke særlig pent, men kan lett ordnes i et skjema eller en<br />
rapport. (Spørringen lagres som Q_Biler på eier.)<br />
7.4 Koblingsegenskaper<br />
Når du kobler to tabeller vises bare de radene der de kombinerte feltene i begge tabellene er<br />
like. Dersom en bil for eksempel skulle stå oppført uten eier vil den ikke bli vist. Dette kan du<br />
endre ved å velge koblingen, klikke <strong>med</strong> høyre mustast og velge koblingsegenskaper.<br />
Der har du tre muligheter:<br />
• standardløsningen: bare ta <strong>med</strong> rader der begge feltene har samme verdi.<br />
• ta <strong>med</strong> alle poster fra den ene tabellen, men bare de <strong>med</strong> en verdi i koblingsfeltet fra den<br />
andre<br />
• den omvendte muligheten.<br />
Der<strong>med</strong> kunne vi valgt å ta <strong>med</strong> alle poster fra T_Bil, men bare de fra T_Person der<br />
koblingsfeltene er like. Da ville vi fått opp også biler uten eiere, som ville hatt Navn-kolonnen<br />
tom.<br />
Stort sett vil referanseintegriteten sørge for at dette skjer automatisk, men iblant får du ikke<br />
opp en eneste rad i en koblingsspørring selv om det er data i tabellene. Da kan<br />
koblingsegenskapene være løsningen.<br />
Hvis du endrer koblingsegenskapene slik at resultatet av spørringen vil avhenge av rekkefølgen<br />
postene leses ut av tabellene i vil du få en feilmelding: «Query contains ambiguous outer join.»<br />
Da er det bare å finne på noe annet.<br />
1096 - <strong>Lars</strong> <strong>Marius</strong> <strong>Garshol</strong> 36