Avatar billede Slettet bruger
30. marts 2002 - 19:37 Der er 6 kommentarer og
2 løsninger

LEFT JOIN vs. LEFT OUTER JOIN

Er der nogle, der med lidt pædagogik og et simpelt eksempel kan illustrere forskellen mellem "LEFT JOIN" og "LEFT OUTER JOIN" ?

Links til andre websites accepteres ikke som svar. Jeg har søgt og læst, men har endnu ikke forstået og set forskellen.

Fortsat god påske til alle.
Avatar billede nih Novice
30. marts 2002 - 20:12 #1
Er det ikke det samme - Blot lidt forskel i SQL syntaksen mellem forskellige database producenter ????

Niels
Avatar billede Slettet bruger
30. marts 2002 - 20:17 #2
I mySQL er det tilsyneladende det samme. Men jvf. SQL standarden bør det ikke være det samme:

"An outerjoin differs from an ordinary (or inner) join by adding to the result any tuple of either relation that does not join with at least one tuple of the other relations ... "

Når man laver en LEFT JOIN i mySQL i forhold til en almindelig join får man alle rækker med i resultatet, med evt. NULL værdier for rækker/attributter der ikke passer.

Sådan som jeg forstår det, er det rent faktisk en LEFT OUTER JOIN man i mySQL laver, når man blot skriver LEFT JOIN.

Det var dette jeg ville have af eller bekræftet.
Avatar billede nih Novice
30. marts 2002 - 20:21 #3
Nogle databaser - Access f.eks. godtager at man skriver begge dele, evt for at programøren kan øge læsevenligheden af sin kode.
Left join og left outer join MÅ være det samme.

Niels
Avatar billede Slettet bruger
30. marts 2002 - 20:27 #4
OUTER og INNER JOIN ér pr. definition IKKE det samme.

Måske er det fordi, at når man joiner normalt "table1, table2" så er det en INNER JOIN. Og når man laver en table1 LEFT/RIGHT JOIN table2 så er det en OUTER JOIN.
Avatar billede Slettet bruger
30. marts 2002 - 20:28 #5
Konklusionen må ihvertfald blive at "LEFT JOIN" og "LEFT OUTER JOIN" er det samme i mySQL.
Avatar billede nih Novice
30. marts 2002 - 20:30 #6
Selve ordet 'OUTER' er vel underforstået (unødvendig) i udtrykket LEFT JOIN.
Et inner join kan jo hverken være LEFT eller RIGHT, det giver kun mening med et outer join.

PS: mine indlæg er helt udokumenteret

Niels
Avatar billede Slettet bruger
30. marts 2002 - 20:36 #7
Jamen, det er nu alligevel korrekt. Jeg havde bare ikke forstået, at når man joinede som "table1, table2" var det INNER JOIN. Og når man skriver LEFT JOIN er det en OUTER JOIN.

Det forstår jeg nu.
Avatar billede terry Ekspert
31. marts 2002 - 17:54 #8
LEFT JOIN and LEFT OUTER JOIN are the same and I am taking this from a book!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester